麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Ruby > 正文

Ruby的運算符和語句優先級介紹

2020-10-29 19:42:01
字體:
來源:轉載
供稿:網友

Ruby 是一種表達能力很強的語言,這得意于它異常豐富的運算符和語法糖,雖然 Ruby 一直把最小驚訝原則作為它的哲學之一,但還是常常看到讓人驚訝不已,難于理解的代碼,這可能是因為對它運算符和語句優先級理解不透導致,今天就和大家聊一聊 Ruby 運算符和語句的優先級。

先看一句簡單的代碼,猜一猜它的輸出是什么。

復制代碼 代碼如下:

  puts {}.class

很多人一定以為結果是 Hash,但實事上結果是空,不信可以在 irb 里試一試。

再看一段代碼。

復制代碼 代碼如下:

puts "5 && 3 is #{5 && 3}"
puts "5 and 3 is #{5 and 3}"
a = 5 && 3
b = 5 and 3
puts "a is #{a}"
puts "b is #{b}"

結果是:

復制代碼 代碼如下:

5 && 3 is 3
5 and 3 is 3
a is 3
b is 5

有沒有覺得奇怪 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.[] []= 元素引用的優先級非常高。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 欧美三级欧美成人高清www | 特片网久久 | 久久久久久久久久综合 | 黄色三级三级三级 | 国产91一区二区三区 | 午夜视频在线观看免费视频 | xxxxhd18hd日本hd| 国产91小视频在线观看 | 色婷婷av一区二区三区久久 | 奇米888一区二区三区 | 亚洲日色 | 国产日韩大片 | 小雪奶水翁胀公吸小说最新章节 | 日本68xxxx| 免费a级毛片大学生免费观看 | 日本a级免费 | 97伦理| 操嫩草 | 精品一区二区三区毛片 | 美国av免费看 | 国产乱色精品成人免费视频 | www.91sao| 全免费午夜一级毛片真人 | 福利免费观看 | 欧美亚洲一级 | chinese中国真实乱对白 | 337p粉嫩大胆噜噜噜亚瑟影院 | 午夜视频大全 | 欧美一页 | 九一传媒在线观看 | 日产精品久久久一区二区开放时间 | 91九色国产视频 | 国产精品久久久久免费视频 | 色播亚洲 | 成人黄视频在线观看 | 99精品视频在线观看免费播放 | wwwxxx国产 | 羞羞电影在线观看 | 久久久久久久久浪潮精品 | 国产亚洲精品久久久久婷婷瑜伽 | 看免费毛片 |