Ruby代码ArgumentError报错原因咨询:Fake Binary问题
错误原因分析
你的代码报错的核心原因是类型不匹配:
- 执行
s.split("")后,得到的数组元素都是字符串类型(比如输入字符串"1235"会被拆成["1","2","3","5"])。 - 你在
x > 5这个判断里,直接拿字符串类型的x和整数类型的5做大小比较,Ruby不允许不同类型的数值类数据直接做比较,因此抛出ArgumentError错误。
你调整if语句的写法没用,是因为问题根本不在if的语法上,而是字符串和整数的类型冲突——只要你不把字符串转成整数,不管怎么改判断的写法,都会触发这个报错。
内容的提问来源于stack exchange,提问作者Raphael40
相关产品推荐
相关产品推荐

