微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Swift学习笔记二十九——函数的使用1

(1)参数类型为可选型Optional. 如果参数为空,则输出??后面的字符串,否则输出可选型的参数值。

import Foundation

func sayHello(name:String?)->String{

  let result = "Hello," + (name ?? "无名氏")
  return result

}

var nickname:String?
nickname = "Jack"
println(sayHello(nickname))

(2)函数如果没有返回值,可以在后面加上->Void。


(3)使用元祖让函数返回多个值。

import Foundation

let userscores = [12,90,45,3,213,45]

func maxMinscores(scores:[Int]) -> (maxscores:Int,minscores:Int){

  var curmax = scores[0]
  var curmin = scores[0]
  
  for score in scores[1 ..< scores.count]{

    curmax = max(curmax,score)//Swift中的全局函数;
    curmin = min(curmin,score)
    
    
  }
  
  return (curmax,curmin)
  
}

let result = maxMinscores(userscores)
println("最大值:\(result.maxscores)" )
println("最小值:\(result.minscores)" )

或者:

import Foundation

let userscores = [12,45]

func maxMinscores(scores:[Int]) -> (Int,Int){

  var curmax = scores[0]
  var curmin = scores[0]
  
  for score in scores[1 ..< scores.count]{

    curmax = max(curmax,curmin)
  
}

let result = maxMinscores(userscores)
println("最大值:\(result.0)" )
println("最小值:\(result.1)" )

上述例子如果返回值为空,则需要进行如下的优化:
import Foundation

let userscores = [12,45]

func maxMinscores(scores:[Int]) -> (maxscore:Int,minscore:Int)?{

  //如果传入的参数数组为空,则返回nil;
  if scores.isEmpty{
  
    return nil
  }
  
  
  var curmax = scores[0]
  var curmin = scores[0]
  
  for score in scores[1 ..< scores.count]{

    curmax = max(curmax,curmin)
  
}

//返回的是一个可选型;
if let result = maxMinscores(userscores){

  println("最大值:\(result.maxscore)" )
  println("最小值:\(result.minscore)" )
  
}

如果传入的数组参数为空,再次进行优化:
import Foundation

var userscores:[Int]? = [1,2,4,5,6]

func maxMinscores(scores:[Int]) -> (maxscore:Int,minscore:Int)?{
  
  //如果传入的参数数组为空,则返回nil;
  if scores.isEmpty{
    
    return nil
  }
  
  
  var curmax = scores[0]
  var curmin = scores[0]
  
  for score in scores[1 ..< scores.count]{
    
    curmax = max(curmax,curmin)
  
}

//返回的是一个可选型;

userscores = userscores ?? []
if let result = maxMinscores(userscores!){
  
  println("最大值:\(result.maxscore)" )
  println("最小值:\(result.minscore)" )
  
}



github主页:https://github.com/chenyufeng1991 。欢迎大家访问!

原文地址:https://www.jb51.cc/swift/325937.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐