1.元組<可返回多個(gè)值>
//元組<多個(gè)返回值>
func calculateStatustics(scores:[Int]) -> (min:Int,max:Int,sum:Int) {
var min = scores[0]
var max = scores[0]
var sum = 0
for score in scores {
if score > max {
max = score
} else if score < min {
min = score
}
sum += score
}
return (min,max,sum)
}
let statistics = calculateStatustics(scores: [5,3,52,100,95])
獲取到的元組數(shù)據(jù)可通過'點(diǎn)方法'或下標(biāo)的方式取值
print(statistics.min)
print(statistics.max)
print(statistics.sum)
print(statistics.0)
print(statistics.1)
print(statistics.2)
2.可變參數(shù)個(gè)數(shù)的函數(shù)
2.1<求和函數(shù)>
func sumOf(numbers:Int...) -> Int {
var sum = 0
for number in numbers {
sum += number
}
return sum
}
sumOf()
sumOf(numbers: 1,2,3,4)
2.2<求平均值函數(shù)>
//計(jì)算平均值
func averageOf(numbers:Float...) -> Float {
var sum :Float = 0
for number in numbers {
sum += number
}
//要做類型轉(zhuǎn)換
return sum/Float(numbers.count)
}
averageOf(numbers: 1,2,3,4)
3.函數(shù)作為參數(shù)進(jìn)行傳遞
//函數(shù)作為參數(shù)傳遞
func hasAnyMatches(list:[Int],condition:(Int) -> Bool) -> Bool {
for item in list {
if condition(item) { //condition 是傳入的函數(shù)體
return true
}
}
return false
}
func lessThanTen(number:Int) -> Bool {
return number < 10
}
var numbers = [20,19,7,12]
hasAnyMatches(list: numbers, condition: lessThanTen)