我使用的教程,它有一個條件是這樣的:使用Ruby布爾值,如果沒有平等語句,你在檢查什麼?
if Restaurant.method1
puts "XXX"
elsif Restaurant.method2
puts "YYY"
end
這兩種方法返回的true
或false
一個布爾值。同樣,對於變量,我見過類似的東西:
if x
puts "XXX"
else
puts "YYY"
end
我想知道你到底是爲考慮,有沒有平等運算符(==
)或賦值運算符(=
)檢查?必須有某種平等檢查,可能被Ruby的簡單化本質隱藏起來,因爲我在邏輯上認爲這是我的頭腦,「If x」和「如果Restaurant.method」都沒有任何意義沒有某種檢查的條件。
完全一樣的東西。在'if Restaurant.method1'中檢查調用方法'method1'的返回值是否爲真,在'if 2 == 3'中,它檢查調用方法'=='的返回值是否爲真,in '如果'a'<='b',它會檢查調用方法'<='的返回值是否真實。爲什麼這個方法的名字會有什麼不同? –
我想知道你到底在檢查什麼。如果沒有'== true'(我相信這就是truthy的意思),如果x/method名字沒有,那麼就沒有辦法直觀地知道該怎麼辦。 – developer098
但'=='只是一個方法,*完全像'method1'。兩者之間沒有區別,除了名字。那麼,爲什麼兩件事情完全一樣呢?爲什麼在一個'if'表達式的條件中調用一個方法與調用另一個方法有什麼不同?在'a == b'的情況下,檢查調用'=='方法的返回值的真實性。在'a.foo(b)'的情況下,檢查調用'foo'方法的返回值的真實性。 –