【发布时间】:2011-01-18 14:31:35
【问题描述】:
在 ruby 中,返回值的最佳/最优雅的方式是什么,例如:
#method returns true or false if 'do i match' is present in string
def method(str)
str =~ /do i match/
end
【问题讨论】:
-
代码有什么问题?它在匹配时返回一个真值,否则返回一个假值。当期待一个布尔值时,无论如何你都不应该使用
== true或== false。 -
它返回 0 或 nil。我认为它应该返回真或假,非常标准的约定......无处不在?另外,我没有使用 == true,诸如 [statement] if 方法之类的东西?是。似乎比必须记住我编写的 API 是否返回任意值,然后找到它们是什么,然后编写诸如 method?.zero 之类的逻辑要好得多?
-
但我的意思是,在 ruby 中,除了 nil 和 false 之外的所有内容都是真实的(甚至是 0!甚至是空字符串!)所以,按照您的方法,
puts "I work!" if method('do i match')将打印“我工作!” .不需要.zero?。 -
哦。好点我会考虑的,谢谢(我是 ruby 的 nuby)
标签: ruby code-formatting