Tôi đã sử dụng Ruby cho một thời gian bây giờ, và tôi tiếp tục nhìn thấy điều này:gì || = làm trong Ruby
foo ||= bar
nó là gì?
Tôi đã sử dụng Ruby cho một thời gian bây giờ, và tôi tiếp tục nhìn thấy điều này:gì || = làm trong Ruby
foo ||= bar
nó là gì?
Điều này sẽ chỉ định bar
đến foo
nếu (và chỉ khi) foo
là nil
hoặc false
.
CHỈNH SỬA: hoặc sai, cảm ơn @mopoke.
Gán bar
đến foo
trừ khi foo
là giá trị thực (không phải false
hoặc nil
).
Nên là: trừ khi 'foo' là sự thật, có nghĩa là sự thật: không phải là' sai' hoặc 'nil'. – yfeldblum
Nhà điều hành || = là biểu mẫu viết tắt của biểu thức:
x = x || "Mặc định"
điều hành || = có thể được viết tắt cho mã như:
x = "(một số giá trị dự phòng)" nếu x.nil?
Từ: http://en.wikibooks.org/wiki/Ruby_Programming/Syntax/Operators
Nếu bạn đang sử dụng nó cho một biến Ví dụ, bạn có thể muốn tránh nó. Đó là vì
@foo ||= bar
Có thể tăng cảnh báo nếu @foo
trước đây chưa được khởi tạo. Bạn có thể muốn sử dụng
@foo = bar unless defined?(@foo)
hoặc
@foo = bar unless (defined?(@foo) and @foo)
tùy thuộc vào việc bạn muốn chỉ đơn thuần là kiểm tra xem @foo được khởi tạo, hoặc kiểm tra xem @foo có truthiness (tức là không phải là nil
hoặc false
) .
Hoặc nếu foo là sai. – mopoke