为什么这个方法只接受符号而不接受字符串作为参数?
x = 10
x.respond_to?(next)
按上述字符串会抛出(ruby):1: void value expression
。
答案 0 :(得分:3)
它接受字符串:
x = 10
x.respond_to?('next')
# => true
您的问题是您没有传递字符串,而是next
关键字。
答案 1 :(得分:1)
来自Ruby respond_to? doc:
respond_to?(symbol, include_all=false) → true or false
respond_to?(string, include_all=false) → true or false
它同时接受符号和字符串。如果传递了字符串,它将转换为符号。
正如Marek所说,你没有传递字符串,也没有符号,并且内置关键字有语法错误。