func
calculateStatistics(scores: [
Int
]) ->(min:
Int
,max:
Int
,sum:
Int
){
//[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 = calculateStatistics ([ 5 , 3 , 100 , 3 , 9 ])
statistics .sum // 数组的用法
statistics . 2 // 数组快速下标
func returnFifteen() -> Int { // 函数嵌套的示例
var y = 10
func add(){
y += 5
}
add ()
return y
}
returnFifteen ()
func makeIncrementer() -> ( Int -> Int ){ // 这里示范了如何返回函数的写法
func addOne(number: Int ) -> Int {
return 1 + number
}
return addOne
}
var increment = makeIncrementer () // 接收函数
increment ( 7 )
func hasAnyMatches(list: [ Int ], condition: Int -> Bool ) -> Bool { // 将函数作为参数的示例
for item in list{
if condition(item){
return true
}
}
return false
}
func lessThanTen(number: Int ) -> Bool {
return number < 10 // 快速语法返回一个 bool 值
}
var numbers = [ 20 , 19 , 7 , 12 ]
hasAnyMatches ( numbers , lessThanTen ) // 将函数作为参数传递进去
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 = calculateStatistics ([ 5 , 3 , 100 , 3 , 9 ])
statistics .sum // 数组的用法
statistics . 2 // 数组快速下标
func returnFifteen() -> Int { // 函数嵌套的示例
var y = 10
func add(){
y += 5
}
add ()
return y
}
returnFifteen ()
func makeIncrementer() -> ( Int -> Int ){ // 这里示范了如何返回函数的写法
func addOne(number: Int ) -> Int {
return 1 + number
}
return addOne
}
var increment = makeIncrementer () // 接收函数
increment ( 7 )
func hasAnyMatches(list: [ Int ], condition: Int -> Bool ) -> Bool { // 将函数作为参数的示例
for item in list{
if condition(item){
return true
}
}
return false
}
func lessThanTen(number: Int ) -> Bool {
return number < 10 // 快速语法返回一个 bool 值
}
var numbers = [ 20 , 19 , 7 , 12 ]
hasAnyMatches ( numbers , lessThanTen ) // 将函数作为参数传递进去
numbers
.
map
({
//
闭包的写法
(number: Int ) -> Int in
let result = 3 * number
return result
})
let mappedNumbers = numbers . map ({number in 3 * number}) // 上述闭包的快速写法
mappedNumbers
let sortedNumbers = sorted ( numbers ){ $0 > $1 } //$0 为快速位置引用
sortedNumbers
(number: Int ) -> Int in
let result = 3 * number
return result
})
let mappedNumbers = numbers . map ({number in 3 * number}) // 上述闭包的快速写法
mappedNumbers
let sortedNumbers = sorted ( numbers ){ $0 > $1 } //$0 为快速位置引用
sortedNumbers