常量參數(shù):
無(wú)論是swift2.0還是swift3.0中省有,默認(rèn)的參數(shù)都是常量參數(shù)患雇。
變量參數(shù):
在swift2.0中前硫,通過(guò)在參數(shù)名前加關(guān)鍵字 var 來(lái)定義變量參數(shù),如下:
func play(num1: Int, num2: Int,var sum: Int,var mius: Int) {
sum = num1 + num2
mius = num1 - num2
}
在swift3.0中涡扼,var 定義變量參數(shù)的方式就被取消了稼跳。(原因請(qǐng)看)
注意:對(duì)變量參數(shù)所進(jìn)行的修改在函數(shù)調(diào)用結(jié)束后便消失了,并且對(duì)于函數(shù)體外是不可見(jiàn)的吃沪。變量參數(shù)僅僅存在于函數(shù)調(diào)用的生命周期中汤善。
如果你還堅(jiān)持要修改參數(shù)的值,你可以試試
輸入輸出參數(shù)(In-Out Parameters)
使用方式:在參數(shù)類(lèi)型的前面加關(guān)鍵字inout修飾票彪,而且你只能傳入一個(gè)變量作為輸入輸出參數(shù)红淡。你不能傳入常量或者字面量,因?yàn)檫@些量是不能被修改的降铸。當(dāng)傳入的參數(shù)作為輸入輸出參數(shù)時(shí)在旱,需要在參數(shù)前加&符,表示這個(gè)值可以被函數(shù)修改推掸。如下:
func play(num1: Int, num2: Int, sum: inout Int, mius: inout Int) {
sum = num1 + num2
mius = num1 - num2
}
var sum = 0, mius = 0
play(num1: 10, num2: 20, sum: &sum, mius: &mius)
注意:使用輸入輸出參數(shù)修改參數(shù)的值桶蝎,這些修改在函數(shù)調(diào)用結(jié)束后仍然存在)。
(如有不正確之處谅畅,請(qǐng)留言)