Swift 函数的返回值类型
函数返回值类型可以是字符串,整型,浮点型等的常用数据类型也可以是元组。
函数返回值为元组类型
元组与数组类似,不同的是,元组中的元素可以是任意类型
,使用的是圆括号。
可以用元组(tuple)类型让多个值作为一个复合值从函数中返回
//定义一个名为minMax(_:)的函数,函数体作用是在一个Int数组中找出最小值与最大值,minMax(_:)函数返回一个包含两个Int值的元组
func countMinMax(numbers:Array<Int>)->(min:Int,max:Int){
var minNum = numbers[0]
var maxNum = numbers[0]
for value in numbers[1..<numbers.count] {
if minNum > value {
minNum = value
}else if value > maxNum {
maxNum = value
}
}
return (minNum,maxNum)
}
//调用
let countResult = countMinMax(numbers: [1,2,3,4,5,6,7,8,9,10])
print("最小值:\(countResult.min),最大值:\(countResult.max)")
//打印输出:最小值:1,最大值:10
当不确定返回的元组一定不为nil,此时
可以返回一个可选的元组类型
。
可以通过在元组类型的右括号后放置一个问号来定义一个可选元组,例如(Int, Int)?
或(String, Int, Bool)?
。
可选元组类型如(Int, Int)?
与元组包含可选类型如(Int?, Int?)
是不同的.可选的元组类型,整个元组是可选的,而不只是元组中的元素值可选。
countMinMax(_ :)
函数传入空数组参数时访问numbers[0]会报错,解决"空数组"问题,将countMinMax(_:)
函数改写为使用可选元组返回类型
,并且当数组为空时返回nil,改造后的函数如下:
//可选元组作为函数返回值
func upCountMinMax(numbers:Array<Int>)->(min:Int,max:Int)?{
//数组参数值为空直接返回nil
if numbers.isEmpty { return nil }
var minNum = numbers[0]
var maxNum = numbers[0]
for value in numbers[1..<numbers.count] {
if minNum > value {
minNum = value
}else if value > maxNum {
maxNum = value
}
}
return (minNum,maxNum)
}
//可选绑定调用
if let countResult = upCountMinMax(numbers: []){
print("最小值:\(countResult.min),最大值:\(countResult.max)")
}else {
print("没有传参")
}//打印输出:没有传参
没有返回值的函数
以下函数接收String类型参数,没有指定返回值类型,并直接输出 String 值,不是返回它
func myName(name:String){
print(name)
}
网友评论