我刚开始学习 ruby,这似乎是我在这里犯的一个容易犯的错误,对吗?
def palindromic(str)
str.to_s
if str.reverse == str
puts "it is a palindromic number!"
end
end
palindromic(500)
相反,我得到一个错误
Project4.rb:5:in `palindromic': undefined method `reverse' for 500:Fixnum (NoMet
hodError)
from Project4.rb:10:in `<main>'
最佳答案
您需要将 str.to_s
行更改为 str=str.to_s
。下面是一个向您展示原因的示例:
num = 12
num.to_s # => "12"
num # => 12
num=num.to_s
num # => "12"
基本上String#to_s
将接收者实例更改为 String
的实例。但是如果接收者已经是 String
实例,那么将返回接收者本身。
ar = [1,2]
ar.object_id # => 77603090
ar.to_s.object_id # => 77602480
str = 'Hello'
str.object_id # => 77601890
str.to_s.object_id # => 77601890
关于ruby - 500 的未定义方法 'reverse',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19353722/