Ruby 没有将 Fixnum 隐式转换为字符串(TypeError)...to_i 不工作
Ruby no implicit conversion of Fixnum into String (TypeError)... to_i not working
我正在学习 Ruby 并尝试解决以下挑战:
Write a method that takes in an integer num
and returns the sum of all integers between zero and num, up to and including 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
的类似方法。但是完全迷失了我所缺少的显而易见的东西。
您的错误是由于尝试添加字符串 ""
和数字 num
。
与尝试转换类型的 JavaScript 不同,Ruby 不允许您将不同的类型与数学运算符一起使用(除非它们是数字,例如浮点数或整数)。
将第 2 行更正为:sum = 0
.
我正在学习 Ruby 并尝试解决以下挑战:
Write a method that takes in an integer
num
and returns the sum of all integers between zero and num, up to and includingnum
.
我想出了:
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
的类似方法。但是完全迷失了我所缺少的显而易见的东西。
您的错误是由于尝试添加字符串 ""
和数字 num
。
与尝试转换类型的 JavaScript 不同,Ruby 不允许您将不同的类型与数学运算符一起使用(除非它们是数字,例如浮点数或整数)。
将第 2 行更正为:sum = 0
.