Ruby 从 Ruby Best Practice 书上看到的,代码哪里出错呢

ikbear · 2012年03月07日 · 最后由 cbkid 回复于 2012年03月07日 · 4008 次阅读
def respond_to?(message)
  message = message.to_sym
  [:__result__, :inspect].include?(message) ||
    __result__.respond_to? message
end

提示出现这样的错误:syntax error, unexpected tIDENTIFIER, expecting keyword_end,还需要什么 keyword_end 呢?

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

最后那个 respond_to? 加上括号就好了。

#1 楼 @iwinux 好吧,我还很初级,在 Ruby 中忘了优先级

好吧,菜鸟问一个问题 [:result, :inspect] 这是啥意思,中括号中加符号是啥意思?他的结果是啥?我在 irb 中试了一下就是 [:result, :inspect]

#4 楼 @cbkid 就是构造了一个数组,第一个元素是 :result ,第二个元素是 :inspect 结构上和 ["reslut", "inspect"] 是一样的

恩,谢谢,刚学 ruby 不太了解,从语法上我猜测一是一个数组,但是看见他用 include?函数并且传了一个 Message 就不敢确定了。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号