该帖已经被评为新手帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-11-05
a = 123 klass = a.class while klass do print klass klass = klass.superclass puts " <<<< " end 开始以为作者些错了,但是后来一运行,居然是可以的,他的 while调见怎么能不是一个 boolean表达式呢?我看他的书上没有什么特殊的用法啊? 这句话: while klass根本不是一个boolean 表达式,他的意思应该是直到 while nil的时候就停止循环,这样使用也可以么? 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-11-05
我觉得在这里发这种问题帖很危险的
|
|
返回顶楼 | |
发表时间:2006-11-05
我也这么认为
|
|
返回顶楼 | |
发表时间:2006-11-05
好像脚本语言都是这样的吧。
只不过对假值的认定上各自之间都有微妙的差别,还引起过哲学高度上的争论 |
|
返回顶楼 | |
发表时间:2006-11-05
ruby 中 非nil就是true,这种问题和哲学有什么关系,完全是一个语法定义的问题。
|
|
返回顶楼 | |
发表时间:2006-11-05
jack 写道 ruby 中 非nil就是true,这种问题和哲学有什么关系,完全是一个语法定义的问题。
这和哲学有关系。确切的说是和逻辑有关系。 1和0,真和假,这是经典逻辑原则。 ruby中“not 0”的结果居然是"false",这太让人惊讶和意外了。 谁能给个ruby的解释,说说有没有办法让人感到不意外的办法。 另外,“非nil就是true”这个命题不成立。例如:false非nil,但false不是true |
|
返回顶楼 | |
发表时间:2006-11-05
axgle 写道 jack 写道 ruby 中 非nil就是true,这种问题和哲学有什么关系,完全是一个语法定义的问题。
这和哲学有关系。确切的说是和逻辑有关系。 1和0,真和假,这是经典逻辑原则。 ruby中“not 0”的结果居然是"false",这太让人惊讶和意外了。 谁能给个ruby的解释,说说有没有办法让人感到不意外的办法。 另外,“非nil就是true”这个命题不成立。例如:false非nil,但false不是true nil和false都被当作false,除此之外都是true。 以后有问题麻烦先去看看Programming Ruby行不行呢? |
|
返回顶楼 | |
发表时间:2006-11-05
axgle 写道 jack 写道 ruby 中 非nil就是true,这种问题和哲学有什么关系,完全是一个语法定义的问题。
这和哲学有关系。确切的说是和逻辑有关系。 1和0,真和假,这是经典逻辑原则。 ruby中“not 0”的结果居然是"false",这太让人惊讶和意外了。 谁能给个ruby的解释,说说有没有办法让人感到不意外的办法。 另外,“非nil就是true”这个命题不成立。例如:false非nil,但false不是true 抱歉 我少记了一条。 ruby是这样定义true的 引用 Ruby has a simple definition of truth. Any value that is not nil or the constant false is true 关于not 0,可以这样理解 0是非nil ,所以 0代表true,在 not操作,于是得出false 另外 别什么都扯到哲学上。 |
|
返回顶楼 | |
发表时间:2006-11-05
...
|
|
返回顶楼 | |
发表时间:2006-11-05
在OO语言里把0定义成false才是令人惊讶的,
0也是一个object,只不过它的值恰好等于数字0罢了 |
|
返回顶楼 | |