函數的介紹
- 函數相當于OC的方法
- 函數格式
- func 函數名(參數列表) →返回值類型{代碼塊retuan 返回值}
func add(num1:Int,num2:Int)→Int{
return num1+num2
}
// ():空的元祖
func add()→Void{
return
}
//或則
func add()→(){
return
}
//或則
func add() {
return
}
func add(num:Int){
return
}
func add() →Int{
return 100
}
func getPerson() →(name:String,age:Int){
return("張三",3)
}
函數的使用注意
- 外部參數和內部參數
func add( num1:Int , num2:Int){
print(num1+num2)
}
//外部忽略參數,修改外部參數
//前面加另外參數即修改外部參數 ;加_即忽略
func add( _ num1:Int , abc num2:Int){
print(num1+num2)
}
- 默認參數
- 某些情況,如果沒有傳入具體的參數,可以使用默認參數
- 如果使用默認值,那么函數的接受參數可以是必傳參數和可傳參數的任意組合
- 應用 :接口升級保證接口的兼容性
如果外界沒有傳遞參數,那么取默認值
func addNum(num1:Int,dis:Int =0)→Int{
return num1+dis
}
- 可變參數
- 格式 : 類型...
- 函數內部把這個參數當做數組來處理,函數外部直接可以傳遞多個值
func add(_ nums :Int...) → Int{
var result = 0
for num In nums{
result += num
}
}
add(1,2,3,4)
- 在函數內部,默認接收到的參數被賦值給一個常量,如果想要改變需要在函數內部使用var修飾
func change(num :Int){
var num = num
num = 3
}
let a =0
change(num:a)
- 指針的傳遞
- 默認情況下函數的參數是值傳遞,如果想改變外面的變量,則需要傳遞變量的地址
- 必須是變量,因為需要在內部改變其值
- swift 提供的inout關鍵字可以實現
func chang(num :inout Int){//指針(地址)的傳遞
num = 3
}
var b = 0
change(num:&b)
func text(){
func text2(){
}
}
函數的類型
func add(num:Int,num2:Int)→ Int{
return num +num2
}
//函數類型為(Int,Int)→Int
func jian(num:Int,num2:Int)→ Int{
return num -num2
}
- 用途:可以作為另一個函數的參數/返回值
//作為參數
func exec(n1:Int,n2:Int,fun:(Int,Int) →Int){
let result = fun(n1,n,2)
print(result)
}
exec(n1:6,n2:8,fun:add)
//作為返回值
func getFunc(name:String) →(Int,Int) →Int{
if name=="add"{
return add
}
return jian
}
- 編譯器如何區分不同函數
- 靠函數名稱
- 外部參數名稱
- 參數類型+返回值類型 = 函數類型
func text(a:Int){
}
func text(b:Int){
}
//以上為兩個不同函數,外部參數不同
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。