Ruby是一種非常有表現力的語言,它以其豐富的運算符和語法而自豪,盡管Ruby是將最小驚喜原則視為其哲學之一,今天武林技術頻道小編將討論詳解Ruby的運算符和語句優先級,一起來看看吧!
先看一句簡單的代碼,猜一猜它的輸出是什么。
?
很多人一定以為結果是 Hash,但實事上結果是空,不信可以在 irb 里試一試。
?
再看一段代碼。
?
結果是:
?
?
?
有沒有覺得奇怪 b 怎么是 5 而不是 3 呢。
如果這兩個例子你也覺得奇怪,那說明你對 Ruby 一些運算符和語句的優先級理解還不透徹,判斷有誤。 puts {}.class 實際上相當于 (puts {}).class -> nil.class 所以輸出為空。{}相當于一個空的 block,優先和方法 puts 結合。 && 和 and 的優先是不同的,而且和 = 號的優先級順序比較, && > = > and,所以 a = 5 && 3 相當于 a = ( 5 && 3),而 b = 5 and 3 相當于 ( b = 5 ) and 3,所以結果 a 和 b的值是不同的。
下面一張表格是 Ruby 中常見的運算符和語句的優先級列表,從上到下優先級遞減。
Ruby operators (highest to lowest precedence)
幾條便于記憶的原則:
1.關鍵字類如if and 等的優先級是要比符號類低;
2.賦值符號 = ||= 等優先級也比較低,僅次于關鍵字類;
3.[] []= 元素引用的優先級非常高。
以上就是關于詳解Ruby的運算符和語句優先級,要想知道更多的技術知識,大家需要去做多方了解,武林技術頻道是你的滿意選擇,大家可以放心閱覽。
新聞熱點
疑難解答
圖片精選