||运算符与=运算符相同吗?

||运算符与=运算符相同吗?

问题描述:

我看到这个片段在敏捷轨编程的书:||运算符与=运算符相同吗?

module StoreHelper 
def page_title 
@page_title || "Pragmatic Store" 
end 
end 

我可以改变|| to =?

较长的答案是,你已经偶然发现了一种非常流行的编程风格,因为它非常简洁,但仍然很容易理解。这是一个快捷方式写:

if ! @page_title.nil? 
    return @page_title 
else 
    return "Pragmatic Store" 
end 

因此,一行逻辑或的删除需要一个if/then。它是这样做的,因为||评估:从左到右,停在第一个不是假的项目上。你发现的例子也遗漏了返回关键字,因为这里没有明确的必要。

+0

很好的解释!谢谢 – mko 2010-12-18 11:56:48

这意味着,page_title将返回@page_title如果不是零,"Pragmatic Store"如果@page_title是零。 (零为空)

+0

或无。 15个字符commentttnwjiqiqhheififjhf – 2010-12-18 08:27:49

+0

另请注意,在Ruby中,如果给定的语句没有任何功能,但在函数或方法中,它会自动返回。 – 2010-12-18 08:28:51

+1

@Time Machine:如果它是该方法的最后一行 – 2010-12-18 08:31:23