为什么 respond_to?需要符号作为 Ruby 中的参数?
Why does respond_to? need symbols as arguments in Ruby?
为什么这个方法只接受符号而不接受字符串作为参数?
x = 10
x.respond_to?(next)
像上面那样推送字符串会抛出 (ruby):1: void value expression
.
它确实接受字符串:
x = 10
x.respond_to?('next')
# => true
你的问题是你没有传递字符串,而是 next
关键字。
来自 Ruby respond_to? 文档:
respond_to?(symbol, include_all=false) → true or false
respond_to?(string, include_all=false) → true or false
它接受符号和字符串。如果传递的是字符串,则会将其转换为符号。
如 Marek 所述,您没有传递字符串,也没有传递符号,并且内置关键字存在语法错误。
为什么这个方法只接受符号而不接受字符串作为参数?
x = 10
x.respond_to?(next)
像上面那样推送字符串会抛出 (ruby):1: void value expression
.
它确实接受字符串:
x = 10
x.respond_to?('next')
# => true
你的问题是你没有传递字符串,而是 next
关键字。
来自 Ruby respond_to? 文档:
respond_to?(symbol, include_all=false) → true or false
respond_to?(string, include_all=false) → true or false
它接受符号和字符串。如果传递的是字符串,则会将其转换为符号。
如 Marek 所述,您没有传递字符串,也没有传递符号,并且内置关键字存在语法错误。