方法參數(shù)
func(參數(shù)1,參數(shù)2...)->返回值{
}
1.參數(shù)形式:外部參數(shù)名 本地參數(shù)名:類型
2.聲明時(shí)可以省略外部參數(shù)名,這時(shí)外部參數(shù)名使用本地參數(shù)名
3.調(diào)用時(shí),第一個(gè)參數(shù)名可省略,但后面的參數(shù)名必須顯示表明。如果在聲明時(shí)加_,調(diào)用時(shí)也可以忽略參數(shù)名
4.方法可以沒有參數(shù),也可以沒有返回值
5.<strong>參數(shù)傳遞默認(rèn)為傳值方式</strong>
//顯式內(nèi)部參數(shù)名,省略外部參數(shù)名
func sayGreeting(name:String, _ words:String)->String{
return words+"! "+name
}
func sayGreeting(){
print("Hello!")
}
func sayGreeting(name:String)->String {
return "Hello! "+name
}
//顯式內(nèi)部參數(shù)名,顯式外部參數(shù)名
func sayGreeting(person name:String,greeting words:String)->String{
return words+"! "+name
}
myObject.sayGreeting()
myObject.sayGreeting("Jason")
myObject.sayGreeting("Jason","Welcome")
myObject.sayGreeting(person:"Jason", greeting:"You are welcome")
更多參數(shù)與返回值功能
1.提供參數(shù)默認(rèn)值
2.常量參數(shù)VS變量參數(shù)
3.可變數(shù)目參數(shù):實(shí)際上傳遞的是數(shù)組
4.inout參數(shù),可以改變外部實(shí)參(指針)
5.多個(gè)返回值,tuple類型
//可變數(shù)目參數(shù)( 在后面加... )
func averageNumber(numbers:Double...)->Double{
var sum=0.0
for item in numbers {
sum+=item
}
return sum / Double(numbers.count)
}
//常量參數(shù) VS. 變量參數(shù)
//常量參數(shù)在內(nèi)部不能改變,變量參數(shù)能改變,但無法對外部實(shí)參造成影響
func changeParameter(data1:Int, var data2:Int){
var dataTemp=data1
data2++
dataTemp++
}
//inout參數(shù)
func swap(inout a:Int,inout b:Int){
let tempA=a
a=b
b=tempA
}
//返回Tuple類型
func minMax(array: [Int]) -> (min: Int, max: Int){
var currentMin = array[0]
var currentMax = array[0]
for value in array[1..<array.count] {
if value < currentMin {
currentMin = value
} else if value > currentMax {
currentMax = value
}
}
return (currentMin, currentMax)
}
myObject.averageNumber(10,90,30,80,50,100)
var data1=100
var data2=200
myObject.swap(&data1,b: &data2)
let range=myObject.minMax([3,-9,23,15,-45,7])
print("max=\(range.max), min=\(range.min)")