這是一個意外的查找。一個非常基本的Ruby的問題,我不碰巧碰上之前的事情:如果語句中出現oneliner語句會產生錯誤,則Ruby會生成錯誤
a = "a"
if a
test = "yes" if a == "a" else "no"
else
test = "no"
end
運行這會產生錯誤:
syntax error, unexpected kELSE, expecting kEND
貌似嵌套oneliner流溢到封閉的if語句。什麼是這個一般化的解決方案?在爆炸的if語句中不使用oneliner? (它在爆炸附帶條件時起作用,因爲它是由關鍵字end
終止的。
順便說一句,這是一個最小化的人爲的例子,所以不需要解釋它的愚蠢或問題爲什麼我會這麼做。對於
「是「如果a ==」a「else」no「看起來像Python條件表達式,但絕對不是Ruby。 – tokland 2010-09-15 19:21:39
呃,哎呀。我已經是Pythonista超過15年了。我認爲當我輸入的速度很快時,即使在輸入Ruby時,它也會出來Python: – JohnMetta 2010-09-17 03:34:10