在ruby中,对于以问号结尾的方法名称,是否是真实的惯用语?

And*_*imm 12 ruby idioms truthiness

带有问号的方法返回一些真实的东西(例如,一个数字)以表明某些东西是真的,或者true本身应该返回它是否正常?

例如,Ruby标准库或Rails中是否有使用真实性的例子?

背景:有人String#int?回答一个单独的问题时编写了一个方法,该问题返回一个表示true的整数,并nil表示false.另一位用户对没有返回布尔值感到惊讶.

Jer*_*hka 8

添加一个?Ruby中的方法名称是惯用的,该方法将返回true或false.对象#零?是一个很好的例子.实际上,Object有很多真实性检查的好例子.


Mar*_*une 6

这是通常的结尾方法?返回无论是truefalse,但它是不系统,没有核心方法假定它.

在核心类的一个例子是Numeric#nonzero?从未返回truefalse.

42.nonzero? # => 42
Run Code Online (Sandbox Code Playgroud)

图书馆Set拥有add?delete?太.我希望Enumerable#one?返回nilfalse区分计数为零的情况和大于一的情况.

类似的例子是比较操作符(<,>,...),其通常只返回truefalse.这里再次存在例外情况Module,nil当两个模块不相关时,它们会返回:

Array > Enumerable  # => false
Array > Fixnum      # => nil
Run Code Online (Sandbox Code Playgroud)