一、函式的定義
(1)函式的定義格式
1 func 函式名(形參列表) ->返回值型別(2)形參列表的格式
形參名1: 形參型別1, 形參名2: 形參型別2, …
(3)舉例:計算2個整數的和
1 func sum(num1: int, num2: int) ->int(4)沒有返回值的函式
如果函式沒有返回值,有3種寫法
1 func 函式名(形參列表) ->void(5)沒有形參的函式45 func 函式名(形參列表) ->() 89
func 函式名(形參列表)
乙個函式如果沒有形參,函式名後面的小括號也不能省略
1 func 函式名() ->int上面的函式沒有形參、返回值是int型別
(6)返回元組的函式
乙個函式也可以返回元組資料
1 func find(id: int) ->(name: string, age: int) else7}二、外部引數名8 var people = find(2
)9 println("
name=\(people.name), age=\(people.age)
")
1.簡單說明
一般情況下,通過形式引數的名字,就能推斷出這個引數的含義和作用
1在函式內部一看引數名就知道這3個引數的作用func addstudent(name: string, age: int, no: int)
但是,形式引數是用在函式內部的,當呼叫函式時就看不見形參的名字,有可能導致以後會不太明白每個引數的含義
對於addstudent("jack", 20, 19)一眼望去,能猜出第1個引數"jack"是指姓名,後面的20、19分別代表什麼含義?
為了解決上述問題,swift提供了外部引數名語法
外部引數名可以在呼叫函式時提醒每個引數的含義
2.定義
外部引數名的定義格式如下:
1 func 函式名(外部引數名 形式引數名: 形式引數型別) ->返回值型別外部引數名寫在形式引數名的前面,與形式引數名之間用空格隔開
3.外部引數名的使用
1 func sum(number1 num1: int, number2 num2: int) ->int注意:一旦定義了外部引數名,在呼叫函式時就必須加上外部引數名25 sum(number1: 10, number2: 20) //
呼叫函式
4.外部引數名的簡寫
使用#能簡化外部引數名的定義
1第1行**的意思:num1、num2既是形式引數名,又是外部引數名func sum(#num1 : int, #num2 : int)
2
// 呼叫函式 sum(num1: 10, num2: 20)
三、預設引數值
(1)可以在定義函式時,給形參指定乙個預設值,呼叫函式時,就可以不用給這個形參傳值
1 func addstudent(name: string, age: int = 20addstudent("jack"))
age引數有個預設值20,所以第4行呼叫函式時可以不傳值給age引數
輸出結果是:
新增1個學生:name=jack,age=20
(2)帶有預設引數值的形參,swift會自動給它生成乙個跟形參名相同的外部引數名
age: int = 20相當於#age: int = 20
因此,如果要傳入age引數值時,只能這麼呼叫
addstudent("jack", age: 25)
(3)在帶有預設引數值的引數名前加個下劃線 _ ,呼叫函式時就不用寫外部引數名
1 func addstudent(name: string, _ age: int = 20) 4四、常量和變數引數5 addstudent("
jack
", 25)
預設情況下,函式的引數都是常量引數,不能在函式內部修改
1注意:第2行**會報錯func test(num: int)
45 func test(num: int)引數相當於func test(let num: int)
在有些情況下,可能需要在函式內部修改引數的值,這時需要定義變數引數
在引數名前面加個var即可
1// 編寫函式在某個字串的尾部拼接n個其他字串func test(var num : int)
26return
string7}
jack
", "
.", 4) //
呼叫函式9//
jack....
五、輸入輸出引數
1.什麼是輸入輸出引數?
在c語言中,利用指標可以在函式內部修改外部變數的值
在swift中,利用輸入輸出引數,也可以在函式內部修改外部變數的值
輸入輸出引數,顧名思義,能輸入乙個值進來,也可以輸出乙個值到外部
2.輸入輸出引數的定義
在引數名前面加個inout關鍵字即可
func swap(inout num1: int, inout num2: int)
3.**示例:寫乙個函式交換外部2個變數的值
14.輸入輸出引數的使用注意func swap(inout num1: int, inout num2: int)
6 var a = 20
7 var b = 10
8 swap(&a, &b) //
傳入的引數前面必須加上&9//
執行完swap函式後,a的值是10,b的值是20
傳遞實參時,必須在實參的前面加上&
不能傳入常量或者字面量(比如10)作為引數值(因為它們都不可改)
輸入輸出引數不能有預設值
輸入輸出引數不能是可變引數
輸入輸出引數不能再使用let、var修飾(inout和let、var不能共存)
輸入輸出引數的價值之一
可以實現函式的多返回值(其實讓函式返回元組型別,也能實現返回多個值)
iOS開發Swift篇 (七)函式 1
一 函式的定義 1 函式的定義格式 1 func 函式名 形參列表 返回值型別 2 形參列表的格式 形參名1 形參型別1,形參名2 形參型別2,3 舉例 計算2個整數的和 1 func sum num1 int,num2 int int 4 沒有返回值的函式 如果函式沒有返回值,有3種寫法 1 fu...
iOS 開發 Swift 七 函式
func sum a int,b int int let result sum 10,b 20 格式 func 函式名 形參1 型別 預設值,形參2 型別 預設值.返回值 說明 包含預設值的函式可以不用傳遞,並且可以任意組合 格式 func 函式名 形參1 型別,形參2 型別.返回值 說明 可以忽略...
iOS開發Swift篇 (八)函式 2
一 函式型別 函式型別也是資料型別的一種,它由形參型別和返回值型別組成,格式是 形參型別列表 返回值型別 1 func sum num1 int,num2 int intsum函式的函式型別是 int,int int 1 func printline 2printline函式的函式型別有4種表示方法...