Ruby 在邏輯控制的部份,除了提供 if 還提供了 unless。
unless 等於 「if not something 」等於 「if !something」。
不過雖說 Ruby 提供了 unless 這個用法,但在實務上來說,一般還是不太推薦使用 unless。除了以下幾種狀況:
unless content.blank?
# ....
end
當沒有 else 的時候,看起來還算 OK
unless foo?
# ....
end
但加上一個 else,看起來就不是那麼直觀了
unless foo?
# ....
else
# ....
end
如果專案當中有這樣的 code,相信我,換成 if 的陳述會直觀許多。
if !foo?
# ....
else
# ....
end
unless foo? && baz?
# ....
end
相同的,改成 if 也會直觀許多
if !foo? || !baz?
# ...
end