Ruby函數(shù)參數(shù)傳遞特性分析
剛剛接觸Ruby語(yǔ)言不久的朋友可能對(duì)于這種新的編寫(xiě)方式有些不太適應(yīng)。其實(shí)只要我們熟練掌握了諸如Ruby函數(shù)參數(shù)傳遞這些基本知識(shí),大致就能熟悉其編寫(xiě)特點(diǎn)。#t#
Ruby函數(shù)參數(shù)傳遞代碼示例:
- def f (a,b)
- puts a,b;
- end
- f([2,3]) # 出錯(cuò)
- f(*[2,3])
輸出:
# 2
# 3
- def k (a={},*b)
- puts a.inspect,b.inspect;
- end
- k(5,2=>3,1=>2])
輸出: 5
- [{1=>2, 3=>3}]
- k(1=>3
輸出: {1=>3}
[]
Ruby函數(shù)參數(shù)傳遞中,最右邊的散hash(2=>3,1=>2 就是散hash)會(huì)被當(dāng)成一個(gè)參數(shù)。
函數(shù)定義中,最右邊的*b,是取調(diào)用者中的剩余參數(shù)(這些參數(shù)放到一個(gè)b數(shù)組中); 如果沒(méi)有剩余參數(shù),那么b 為[]