我正在運行Ruby 1.9。「OR」操作員必須放在上一行的末尾? (意外的tOROP)
這是一個有效的語法:
items = (data['DELETE'] || data['delete'] ||
data['GET'] || data['get'] || data['POST'] || data['post'])
但是,這給了我一個錯誤:
items = (data['DELETE'] || data['delete']
|| data['GET'] || data['get'] || data['POST'] || data['post'])
t.rb:8: syntax error, unexpected tOROP, expecting ')'
|| data['GET'] || data['get'] |...
^
爲什麼?
我不確定是否「驚人的工作」是正確的(我認爲這是*奇數*因爲表達式*可以由下一行中的操作符繼續)*,但*它是如何定義Ruby語言(疣和所有)+1。 (JavaScript對此有不同的處理方式 - 也許更多的是「預計」 - 對ASI有一些限制性產品。) – 2012-11-21 22:21:11
實際上:Scala和Python--也不需要分號 - *也*處理這個問題,也許「預計」 ,與Ruby相比。他們不支持後者的答案(括號和沒有聲明分隔符),這是一個奇怪的構造)。 – 2012-11-21 22:38:51