与c++不同,swift的函数参数更加啰嗦,完整的参数包含参数标签、参数名称、参数类型组成。
func someFunction(argumentLabel parameterName: parameterType) {
}
函数调用时,参数标签写在对应参数的前面,而参数名称在函数内部使用。
例如:
func someFunction(argumentLabel parameterName: Int) {
//statements, use parameterName
}
someFunction(argumentLabel: 1) // calling function
没有指定参数标签时,默认将参数名称作为参数标签。
func greet(person: String) -> String {
let greeting = “hello, ” + person + “!”
return greeting
}
print(greet(person: “Anna”))
通过下划线(“_”)来忽略参数标签,
例如:
func someFunction(_ firstParameterName: Int, secondParameterName: Int) {
}
someFunction(1, secondParameterName: 2)
与c++一样,swift函数也可以提供默认值、也可以提供可变参数;同时也可以提供输入输出参数,c++中输入输出参数是通过指针和引用来实现的,swift中是在参数类型之前添加关键字inout来表示参数是输入输出参数。函数调用时,变量加上&前缀。
返回值
与c++不同,swift函数可以通过元组来返回多个值
func getMinMax(array: [Int]) -> (min: Int, max: Int) {
}
可选元组返回值
func getMinMax(array: [Int]) -> (min: Int, max: Int)? {
}
上面的例子中array可能为空,为空时会触发运行时错误,
增加判断数组为空的语句,
if array.isEmpty {
return nil
}