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

ikbear · March 07, 2012 · Last by cbkid replied at March 07, 2012 · 4004 hits
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 就不敢确定了。

You need to Sign in before reply, if you don't have an account, please Sign up first.