2012-04-13 80 views
2

根据我一直在线上阅读的文献,除了false和nil,所有内容在Ruby中的评估结果均为true。我试图找出这可能有什么好处?谢谢红宝石 - 一切都评估为真

+3

有什么好处*不*它有?这只是一种语言设计选择。 – Ryan 2012-04-13 23:43:19

回答

0

Ruby中的一切都是一个对象。 Here's a decent read

+3

虽然这并没有帮助, “假”也是一个对象 - 那么如何作为对象回答这个问题? (其实问 - 我可能会错过明显的东西。) – 2012-04-13 23:54:22

7

我会在检查用户是否输入一个值时总结这个优点。

PHP:

if($somevalue !== null) { # '' and '0' are falsy. 

红宝石:

if somevalue 
5

这让真相很简单的语言的概念 - 只有被认为是“假”的东西是东西,不要在逻辑上代表“无“答案:错误本身和零,这代表了”虚无“的概念。在像Ruby这样的语言中,我发现很难争辩让更多的价值观变得虚伪,除非它让人们对其他语言中经验丰富的人更加熟悉。 (顺便说一下,我也认为C的真值模型非常简单:如果某事相当于零,这是错误的,但在Ruby中,我们主要处理对象而不是数字,这会使得真实!)

1

它使大多数逻辑语句更易于阅读。 (和写,但我认为不太重要。)