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 。欢迎大家访问!

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...