您的位置:首页 > 移动开发 > Swift

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

2015-09-16 14:57 507 查看
(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,90,45,3,213,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,score)//Swift中的全局函数;
curmin = min(curmin,score)

}

return (curmax,curmin)

}

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


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

import Foundation

let userScores = [12,90,45,3,213,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,score)//Swift中的全局函数;
curmin = min(curmin,score)

}

return (curmax,curmin)

}

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

println("最大值:\(result.maxScore)" )
println("最小值:\(result.minScore)" )

}


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

import Foundation

var userScores:[Int]? = [1,2,3,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,score)//Swift中的全局函数;
curmin = min(curmin,score)

}

return (curmax,curmin)

}

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

userScores = userScores ?? []
if let result = maxMinScores(userScores!){

println("最大值:\(result.maxScore)" )
println("最小值:\(result.minScore)" )

}


github主页:https://github.com/chenyufeng1991  。欢迎大家访问!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: