函數
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))