元组作为返回值的函数

元组作为返回值示例

func test(arr: [Int]) -> (min: Int, max: Int) {
    var templeMin = arr[0]
    var templeMax = arr[0]
    for value in arr[1..<arr.count] {
        if value < templeMin {
            templeMin = value
        } else if value > templeMax {
            templeMax = value�
        }
    }
    return (templeMin, templeMax)
}

元组返回值的访问

元组已经在函数返回值中命名,不需要在函数返回时再次命名

let bounds = test(arr:[1,3,5,6,7,34])
print("min is \(bounds.min), max is \(bounds.max)")
//打印min is 1, max is 34

空数组作为函数参数传入时

  • 问题:函数不会对作为参数传入的数组进行安全检查,如果空数组传入函数,在函数体内通过下标访问数组元素,将导致运行时错误

  • 解决办法:在函数体内判断数组是否为空,为空返回nil;返回值类型写为可选元组类型。(说明:再函数体内判断数组是否为空,为空时,返回nil。但是nil不属于函数的返回值类型(元组),因此,要将返回值写为可选元组类型)

  • 示例:

      func test(arr:[int]) -> (min: Int, max: Int)? {
          if arr.isEmpty {return nil}
          //...判断最大小值
          return (templeMin, templeMax)
      }
    
  • 返回值的使用:可以使用可选绑定(if let)检查函数返回的是元组还是nil

      if let bounds = test(arr: [2,43,5,6,7,2]) {
          print("min is \(bounds.min), max is \(bounds.max)")�
      } 
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容