Ruby on rails 约定:if(!foo)vs除非(foo)。而while(!foo)vs until(foo)
我正在学习Ruby和RoR,并注意到Ruby on rails 约定:if(!foo)vs除非(foo)。而while(!foo)vs until(foo),ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在学习Ruby和RoR,并注意到 if !foo ruby提供 unless foo 此外,不是: while !foo 我们有 until foo 来自C++/Java,当我阅读uncler/until时,它似乎把我弄糊涂了。用ruby编写大量程序的人是否会习惯性地使用除非/直到,而不仅仅是否定if/while 这是我应该习惯的事情,还是你在这个问题上看到了很多差异 谢谢 是,使用除非条件,而不是如果!条件是常见且惯用的 unless foo # ... end 它特别
if !foo
ruby提供
unless foo
此外,不是:
while !foo
我们有
until foo
来自C++/Java,当我阅读uncler/until时,它似乎把我弄糊涂了。用ruby编写大量程序的人是否会习惯性地使用除非/直到,而不仅仅是否定if/while
这是我应该习惯的事情,还是你在这个问题上看到了很多差异
谢谢 是,使用
除非条件,而不是如果!条件
是常见且惯用的
unless foo
# ...
end
它特别常见于用作post条件:
# Bad
raise "Not Found" if !file_exists?(file_name)
# Good
raise "Not Found" unless file_exists?(file_name)
如有疑问,请按照以下部分的语法部分进行操作:
若为不利条件(或控制流| |),则表示赞成,除非超过
及
在消极的情况下,支持直到结束
只是习惯的力量,它已经被编辑过了。
# bad
do_something if !some_condition
# bad
do_something if not some_condition
# good
do_something unless some_condition
# another good option
some_condition || do_something
# bad
do_something while !some_condition
# good
do_something until some_condition