方法参数
func(参数1,参数2...)->返回值{
}
1.参数形式:外部参数名 本地参数名:类型
2.声明时可以省略外部参数名,这时外部参数名使用本地参数名
3.调用时,第一个参数名可省略,但后面的参数名必须显示表明。如果在声明时加_,调用时也可以忽略参数名
4.方法可以没有参数,也可以没有返回值
5.<strong>参数传递默认为传值方式</strong>
//显式内部参数名,省略外部参数名
func sayGreeting(name:String, _ words:String)->String{
return words+"! "+name
}
func sayGreeting(){
print("Hello!")
}
func sayGreeting(name:String)->String {
return "Hello! "+name
}
//显式内部参数名,显式外部参数名
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")
更多参数与返回值功能
1.提供参数默认值
2.常量参数VS变量参数
3.可变数目参数:实际上传递的是数组
4.inout参数,可以改变外部实参(指针)
5.多个返回值,tuple类型
//可变数目参数( 在后面加... )
func averageNumber(numbers:Double...)->Double{
var sum=0.0
for item in numbers {
sum+=item
}
return sum / Double(numbers.count)
}
//常量参数 VS. 变量参数
//常量参数在内部不能改变,变量参数能改变,但无法对外部实参造成影响
func changeParameter(data1:Int, var data2:Int){
var dataTemp=data1
data2++
dataTemp++
}
//inout参数
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)")