1).函數的定義:
函數的定義語法:
func 函數名(參數名:參數類型,參數名:參數類型...) -> 函數返回值類型 {
??????? 函數實現部分
}
func showInputName(name:String) -> String {
print(name)
return name
}
函數調用語法:
函數名(參數...)
showInputName("Mike")
2).函數可以有多個返回值:使用元組
func showInputName(name:String) -> (String , String) {
print(name)
return ("1" , "2")
}
3).使函數返回值帶有參數名
func showInputName(name:String) -> (string1 : String , string2 : String) {
print(name)
return ("1" , "2")
}
let _ = showInputName("haha").string1
4).函數的內部參數和外部參數
//outName為外部參數 name為內部參數
func showInputName(outName name:String) {
? print(name)
}
showInputName(outName: "haha")
5).函數的默認參數
func showInputName(name name:String = "haha") {
print(name)
}
showInputName()? //帶默認參數的函數 調用的時時候 如果想要使用默認參數 那么外部參數名也要一起省略
6).函數參數的常量、變量性和inout
函數變量默認是常量類型陷舅,如果需要在函數體內更改宵距,可以在聲明時候然低,設置為變量類型:
func showInputName(var name :String) {
let b = name
name = b
}
showInputName("hah")
但是S⒃狻P灿企蹭!此修改只是表面上的修改,如果想要改變實參值智末,則需要使用inout關鍵字:
func showInputName(inout name :Int) {
name += 10
print(name)
}
var a = 10
showInputName(&a)
print(a)? //兩個打印結果 均為20
7).變參函數
如果想要傳入任意多個參數谅摄,可以使用:“ 類型...” 的形式來聲明函數:
func showInputName(name : Int...) {
?? for i in name {
????? print(i)
? }
}
showInputName(1,2,3,4,5) ? ? //注意:變參一定要放在函數參數中的最后一個位置
8).函數類型
函數類型是由函數的參數和返回值共同決定的
func showInputName(name : Int) {
}
var _ : (Int) -> Void = showInputName
注:函數類型還可以作為函數返回值的類型