加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 01:48:37 所属栏目:百科 来源:网络整理
导读:(1)参数类型为可选型Optional. 如果参数为空,则输出??后面的字符串,否则输出可选型的参数值。 import Foundationfunc sayHello(name:String?)-String{ let result = "Hello," + (name ?? "无名氏") return result}var nickname:String?nickname = "Jack"

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读