ruby 中嘆號問號的作用

2021-06-26 09:50:12 字數 1675 閱讀 3863

ruby中的方法可以以問號和嘆號結尾,問號通常用於謂語方法,這種方法返回乙個布林值。例如array和hash類都定義了乙個empty?方法,這個方法用於測試資料結構中有沒有元素。

如果方法以嘆號結尾,這意味著我們在使用這個方法的時候要小心,比如大多數核心的ruby類庫方法都提供兩個同名的方法,乙個以嘆號結尾,乙個沒有,

區別在於,如果使用沒有嘆號結尾的方法,你在呼叫它的時候會得到當前物件的乙個拷貝而不會修改原始物件,而如果使用帶有嘆號的方法,你在呼叫它的時候會直接修改當前物件的值。

比如array類物件中定義的sort和sort!方法。

i =0

puts breeds.size #=> 4

temp =

while i

temp <

i += 1

end

結果:

c:\users\zjyivad\desktop\ruby>111.rb

4

i =0

puts breeds.size #=> 4

temp =

while i

temp <

i += 1

end

breeds.replace(temp )

temp.sort!

breeds.replace(temp )

4

swift 中的問號跟感嘆號

變數在使用過程中可能存在空值,則需要用?標記,否則賦空值會報錯?1 2varmustnonilvalue string swift varcannilvalue string?nil 感嘆號和問號是配套使用的,用問號標記的變數,在呼叫方法的時候,需要新增感嘆號,意義是,如果變數是空值,則感嘆號後面的...

Swift中的感嘆號 與問號 之謎

在swift 會經常看到定義屬性或方法引數時型別後面會緊跟乙個感嘆號 或問號 剛開始接觸swift的童鞋就可能不太明白之代表什麼意思,一頭霧水,開始凌亂了。本文將帶你了解感嘆號 與問號 之謎,首先問號 是可選型別,是用來處理值可能缺失的情況,也就是沒有值的情況 也就是oc中null 感嘆號 就是與之...

js 中雙嘆號 的作用

雙嘆號 一般用來將後面的表示式強制轉換為布林型別的資料,true false。因為js是弱型別的語言 變數沒有固定的資料型別 所以有時需要強制轉換為相應的型別,比如 a parseint 3456 顯示轉換 b someobject.tostring 顯示轉換,將物件轉換為字串 c 3456 0 隱...