濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Ruby的運(yùn)算符和語(yǔ)句優(yōu)先級(jí)介紹

Ruby的運(yùn)算符和語(yǔ)句優(yōu)先級(jí)介紹

熱門標(biāo)簽:柯城手機(jī)地圖如何做地圖標(biāo)注 漯河電銷 中牟外呼系統(tǒng)違法嗎 天津外呼系統(tǒng)怎么收費(fèi) AI電銷機(jī)器人 線路 外呼線路從哪里出來(lái)的 淮安自動(dòng)外呼系統(tǒng)供應(yīng)商 巫師3地圖標(biāo)注魔力之所 征服者企業(yè)地圖標(biāo)注

Ruby 是一種表達(dá)能力很強(qiáng)的語(yǔ)言,這得意于它異常豐富的運(yùn)算符和語(yǔ)法糖,雖然 Ruby 一直把最小驚訝原則作為它的哲學(xué)之一,但還是常??吹阶屓梭@訝不已,難于理解的代碼,這可能是因?yàn)閷?duì)它運(yùn)算符和語(yǔ)句優(yōu)先級(jí)理解不透導(dǎo)致,今天就和大家聊一聊 Ruby 運(yùn)算符和語(yǔ)句的優(yōu)先級(jí)。

先看一句簡(jiǎn)單的代碼,猜一猜它的輸出是什么。

復(fù)制代碼 代碼如下:

  puts {}.class

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

再看一段代碼。

復(fù)制代碼 代碼如下:

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 #"

結(jié)果是:

復(fù)制代碼 代碼如下:

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

有沒有覺得奇怪 b 怎么是 5 而不是 3 呢。

如果這兩個(gè)例子你也覺得奇怪,那說(shuō)明你對(duì) Ruby 一些運(yùn)算符和語(yǔ)句的優(yōu)先級(jí)理解還不透徹,判斷有誤。 puts {}.class 實(shí)際上相當(dāng)于 (puts {}).class -> nil.class 所以輸出為空。{}相當(dāng)于一個(gè)空的 block,優(yōu)先和方法 puts 結(jié)合。 和 and 的優(yōu)先是不同的,而且和 = 號(hào)的優(yōu)先級(jí)順序比較, > = > and,所以 a = 5 3 相當(dāng)于 a = ( 5 3),而 b = 5 and 3 相當(dāng)于 ( b = 5 ) and 3,所以結(jié)果 a 和 b的值是不同的。

下面一張表格是 Ruby 中常見的運(yùn)算符和語(yǔ)句的優(yōu)先級(jí)列表,從上到下優(yōu)先級(jí)遞減。


Ruby operators (highest to lowest precedence)

幾條便于記憶的原則:

1.關(guān)鍵字類如if and 等的優(yōu)先級(jí)是要比符號(hào)類低;
2.賦值符號(hào) = ||= 等優(yōu)先級(jí)也比較低,僅次于關(guān)鍵字類;
3.[] []= 元素引用的優(yōu)先級(jí)非常高。

標(biāo)簽:甘孜 內(nèi)江 大慶 南昌 棗莊 河池 克拉瑪依 西雙版納

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby的運(yùn)算符和語(yǔ)句優(yōu)先級(jí)介紹》,本文關(guān)鍵詞  Ruby,的,運(yùn)算符,和,語(yǔ)句,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby的運(yùn)算符和語(yǔ)句優(yōu)先級(jí)介紹》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Ruby的運(yùn)算符和語(yǔ)句優(yōu)先級(jí)介紹的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    中西区| 岳普湖县| 玛纳斯县| 冀州市| 大同县| 休宁县| 沈阳市| 黔西县| 灌阳县| 浠水县| 木兰县| 天津市| 芦山县| 鹿邑县| 科尔| 雅江县| 遂川县| 富平县| 深泽县| 淄博市| 保定市| 上饶市| 望城县| 石河子市| 石嘴山市| 原平市| 措勤县| 遵化市| 水城县| 桂平市| 平昌县| 舞阳县| 兴仁县| 沅陵县| 马边| 丰顺县| 原平市| 乐安县| 蕲春县| 兴山县| 德令哈市|