gpt4 book ai didi

ruby - 这个 ruby 代码有什么问题?语法错误,意外的 tIDENTIFIER,期待 keyword_end

转载 作者:数据小太阳 更新时间:2023-10-29 08:52:24 24 4
gpt4 key购买 nike

这段代码来自名为 Ruby Best Practice 的书:

def respond_to?(message)
message = message.to_sym
[:__result__, :inspect].include?(message) ||
__result__.respond_to? message
end

但我得到一个错误:语法错误,意外的 tIDENTIFIER,期待 keyword_end。怎么了?

最佳答案

你需要更多的括号,像这样

def respond_to?(message)
message = message.to_sym
[:__result__, :inspect].include?(message) ||
__result__.respond_to?(message)
end

或者(但看起来更丑)

def respond_to?(message)
message = message.to_sym
[:__result__, :inspect].include?(message) ||
(__result__.respond_to? message)
end

无论如何,ruby 理解的是:

def respond_to?(message)
message = message.to_sym
([:__result__, :inspect].include?(message) ||
__result__.respond_to?) message
end

因为运营商优先。

我喜欢调用不带括号的函数,但只有当代码没有歧义时这是一件好事,ruby 不会像 || 函数那样为新行分配任何优先级.

关于ruby - 这个 ruby 代码有什么问题?语法错误,意外的 tIDENTIFIER,期待 keyword_end,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9601736/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com