函數就是實現某些特定功能的模塊板塊,通過函數名調用(起函數名最好起的最好可以通過函數名就基本知道這個函數是幹嘛的,不要嫌麻煩,可以多寫點),可以定義一個或多個參數名,參數類型,然後可以有返回類型,當通過函數名調用(“call”)函數的時候,我們傳遞的參數類型要和函數定義的參數類型一致
(一)定義和調用函數
我們定義一個sayHello(_:)的的函數,因爲這就是這個函數的功能,傳入一個人名,返回的是和這個人打招呼。爲了完成這個,我們需要一個String類型的傳入參數,叫做personName,一個和那個人打招呼的返回值,代碼如下
override func viewDidLoad() {
super.viewDidLoad()
// func geet(preson:[String:String]){
// guard let name = preson["name"] else{
// print("Hello")
// return
// }
// print("Hello\(name)!")
// }
//
// geet(["name":"xiaoyu"])
// geet(["dfdfdf":"a"])
sayHello("xiaoyu")
}
func sayHello(personName:String) -> String{
let greeting = "Hello," + personName + "!"
print(greeting)
return greeting
}
(註釋的代碼是我看控制流時寫的,guard和else要成對出現另外,guard後面執行必須是正確的,而不是像if一樣,else可以不出現,個人覺得swift出這個就是相對if而言的,在符合要求的後面,這個可以給我們更多的關於不符合要求的操作(violated requirement),在else裏面我們可以寫錯誤信息,也可以break,continue,throw,fataError()等等,這個不太會實踐,假如你理解的更好,可以在下面附上一段代碼,大家共同學習)好了,言歸正傳吧,解釋下上面的函數
(1)func 就是函數關鍵字,這個就不用多說了吧
(2)sayHello是函數的名字,也就是函數的標示符,調用的時候你好找得到
(3)presonName就是參數的名字,String就是參數的類型,中間用:號分開(C語言的是先試類型,後面跟着參數的名字,如int a,多個參數也都是用,號分割)
(4)->表示函數的返回值,String表示返回值的類型
這個函數已經寫好了,當我想和somebody打招呼的時候就可以調用了,通過函數的名字,如上面的代碼一樣
上面的代碼也可以簡化一下
print(sayHello("xiaoyu"))
}
func sayHello(personName:String) -> String{
// let greeting = "Hello," + personName + "!"
// print(greeting)
return ("Hello,\(personName)!")
}
今天就到這裏吧,下次我會寫函數的參數和返回值,敬請期待,謝謝