func 函數名(){函數
}spa
注意:空函數是沒有返回值的。code
【示例7-3】如下爲程序定義一個空函數fun,而後再去調用。代碼以下:orm
import Foundation開發
//空函數的聲明定義字符串
func fun(){it
}io
fun()入門
因爲在空函數中沒有執行的語句,因此不會有任何輸出結果本文選自Swift 1.1語言快速入門。import
有參數函數是指包含參數列表的函數。如下對它的聲明定義、調用、使用參數的主要事項和參數名進行詳細的講解。
有參函數聲明定義的通常形式以下:
func 函數名(參數名1:數據類型,參數名2:數據類型,……)->返回值類型{
語句
}
其中, 無參函數和有參函數的區別在於參數列表。參數列表由參數名和數據類型組成,其中使用「:」冒號將它們分隔開。參數列表中的參數能夠有多個。定義時使用參數是爲了接收調用(調用會在下一小節中講解)時傳遞的數據。
【示例7-4】如下定義一個函數名爲fun()的函數,此函數帶有一個參數。代碼以下:
func fun(Name: String){
…
}
注意:參數列表中的參數名和數據類型都是不能夠省去的。如如下的代碼,它就是將參數名後面的數據類型省去了,代碼以下本文選自Swift 1.1語言快速入門:
func fun(Name){
…
}
因爲省去了數據類型致使程序出現瞭如下的錯誤:
Use of undeclared type 'Name'
在有參函數聲明定義後,就能夠調用了,其調用的通常形式以下:
函數名(參數值1,參數值2,…)
【示例7-5】如下代碼將實現問候某一我的的功能。代碼以下:
import Foundation
//有參函數的聲明定義
func fun(Name: String){
println("Hello,\(Name)")
}
let personName1="Tom"
fun(personName1) //調用
let personName2="Div"
fun(personName2) //調用
在此代碼中,函數調用依次將字符串"Tom"和"Div"傳遞給函數在定義時的參數Name,而後進行輸出。運行結果以下所示本文選自Swift 1.1語言快速入門:
Hello,Tom
Hello,Div
Program ended with exit code: 0
固然在函數參數列表中也能夠由多個參數。這時,多個參數須要使用「,」逗號分隔。
【示例7-6】如下將輸出某一範圍內包含的數字。代碼以下:
import Foundation
//具備多個參數函數的聲明定義
func range(start:Int,end:Int){
var i=start
var e=end
for i;i<=e;++i{
println(i)
}
}
let s=1
let e=5
range(s,e) //調用
運行結果以下所示:
1
2
3
4
5
Program ended with exit code: 0
在使用參數時,須要當心,避免出現問題。如下講解常出現的兩個問題本文選自Swift 1.1語言快速入門。
1.參數個數
函數在聲明定義時的參數要和調用時的參數個數一致。不然,就會出現錯誤。例如如下代碼,它的功能計算在某一範圍內包含多少個元素。代碼以下:
import Foundation
func range(start:Int,end:Int){
println(end-start)
}
let s=1
let e=5
range(s)
因爲聲明定義時的參數個數爲2個,可是調用時的參數可是爲1個。兩個參數不一致,致使程序出現如下的錯誤提示:
Missing argument for parameter #2 in call
此錯誤信息的意思是:在調用時丟失了#2參數。
2.參數順序
聲明定義時的參數順序必定要和調用時的參數順序一致,不然就會出現錯誤,或者是邏輯上的錯誤。例如如下的代碼,將字符串aa輸出指定的次數。
import Foundation
func fun(start:Int,end:Int,str:String){
var i=s
for i;i<=end;++i{
println("字符串:\(str)第\(i)次輸出")
}
}
let s=1
let e=5
var ss="a"
fun(s,ss,e)
在聲明定義時參數的順序爲(Int,Int,String),而在調用時參數的順序爲(Int,String,Int)。二者是不同的,因此就會出現如下的錯誤提示:
'String' is not convertible to 'Int'
本文選自Swift 1.1語言快速入門