def respond_to?(method, include_private = false)
super || @subject.respond_to?(method, include_private)
end
||
是一个or
运算符,那么方法之间的||
意味着什么?
除非super
返回nil,否则它始终会调用super
,然后评估@subject.respond_to
,因为||
运算符会短路?
编辑:我认为我的问题不重复,因为我知道'||'是怎样的运算符来自其他编程语言。我知道什么是短路。我只是从来没有看到它只使用两种方法而没有if语句涉及。
答案 0 :(得分:4)
||
运算符的含义相同,无论表达式的每一侧有多复杂。
A || B
表示:
A
A == false
或A == nil
B
B
的值作为A || B
表达式A
的值作为A || B
表达式