And*_*imm 12 ruby idioms truthiness
带有问号的方法返回一些真实的东西(例如,一个数字)以表明某些东西是真的,或者true本身应该返回它是否正常?
例如,Ruby标准库或Rails中是否有使用真实性的例子?
背景:有人String#int?在回答一个单独的问题时编写了一个方法,该问题返回一个表示true的整数,并nil表示false.另一位用户对没有返回布尔值感到惊讶.
这是通常的结尾方法?返回无论是true或false,但它是不系统,没有核心方法假定它.
在核心类的一个例子是Numeric#nonzero?其从未返回true或false.
42.nonzero? # => 42
Run Code Online (Sandbox Code Playgroud)
图书馆Set拥有add?和delete?太.我希望Enumerable#one?返回nil或false区分计数为零的情况和大于一的情况.
类似的例子是比较操作符(<,>,...),其通常只返回true或false.这里再次存在例外情况Module,nil当两个模块不相关时,它们会返回:
Array > Enumerable # => false
Array > Fixnum # => nil
Run Code Online (Sandbox Code Playgroud)