【发布时间】:2016-06-28 02:44:01
【问题描述】:
我正在学习 Ruby 并尝试解决以下挑战:
编写一个接收整数
num并返回从零到 num 的所有整数之和的方法,直到num并包括在内。
我想出了:
def sum_nums(num)
sum = ""
num = num.to_i
if num > 0
while num > 0
sum = sum + num
num = num - 1
end
end
if num == 0
sum = 0
end
if num < 0
while x < 0
sum = sum + num
num = num + 1
end
end
return sum
end
在第 6 行收到 Fixnum 字符串错误,无法自行排除故障。我尝试将 num 转换为整数,即使这对我来说没有意义,因为我编写了不需要 to_i 的类似方法。但是对于我遗漏的显而易见的事情完全迷失了。
【问题讨论】:
-
您不能添加字符串和数字,因此,虽然您之前可能没有使用过
to_i,但您也没有做“类似”的事情。您要么从两个数字开始,要么正在执行字符串连接。 -
只有一个问题:错误消息告诉您它需要一个字符串但得到一个数字,您尝试通过转换为数字来解决该问题?为什么?它告诉你它已经得到一个数字,所以你知道它已经是一个数字,那是错误,它需要一个字符串而是。