swift入門第四章函數

函數

1.定義函數的關鍵字是func

在定義函數的時候,不管有沒有參數都要加上括號,參數在括號中,沒有返回值的時候,也可以寫成如下格式,當有返回值的時候在->()括號中寫上返回值的類型

1.1 無參數無返回值

func printString()->(){
    println("nice to meet you")
}

函數調用

printString()

1.2 有參數無返回值

func noneHello(str:String) {
    println("\(str) hello")
}

函數調用

noneHello("hi")

1.3 無參數有返回值

func returnHello()->NSString {
    return "hello world"
}

函數調用

println(returnHello())

1.4 有參數有返回值

func havehaveHello(str:String)->String {
    return "\(str) hei hei"
}
println(havehaveHello("hi"))

1.5 有多個參數

string1,string2可以省略掉

swift中函數之所以能夠返回多個值,是因爲swift中函數可以跟元組結合使用

func moreValue(str1:String, str2:String)->(string1:String, string2:String) {
    var minValue = str1.lowercaseString;
    var maxValue = str2.uppercaseString
    return (minValue, maxValue)
}
println(moreValue("hehe", "ququ"))

當沒有添加var關鍵字時,參數的默認類型爲let類型,要想在方法中改變參數的值,需要定義爲var類型

func changeValueInFunc(var number:Int) {
    number++
    println(number)
}
changeValueInFunc(9)

通過函數的調用來更改兩個參數的值時,要用inout來聲明參數的類型,在函數調用的時候用&符來取地址,inout和&是配套使用的。

若用var來修飾參數,因爲swift是值拷貝,只是拷貝內容(地址不變),並不會改變它原來的值

func swapTwoNumber(inout number1:Int, inout number2:Int) {
    var temp = 0
    temp = number1
    number1 = number2
    number2 = temp
}
var a = 10, b = 17
swapTwoNumber(&a, &b)
println("a = \(a), b = \(b)")

函數定義外部參數的名字(跟函數功能無關,只是個提示,方便填入參數)

func printPersonName(personName str:String) {
    println(str)
}
printPersonName(personName: "ayang")

定義函數外部變量的簡單寫法

通過 # 的調用直接使函數的參數名作爲外部變量的名字

func printPersonName2(#personName:String) {
    println(personName)
}
printPersonName2(personName: "ayangcool")

函數的類型

(Int)->Int

func funcType(number:Int)->(Int) {
    return number
}

對函數類型的驗證

var ayangFunc:(Int)->Int = funcType
println(ayangFunc(6))
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章