函数和闭包

前端之家收集整理的这篇文章主要介绍了函数和闭包前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

//: Playground - noun: a place where people can play


import UIKit


//使用 func 声明一个函数调用函数使用他的名字加上小括号中的参数列表。使用 -> 分隔参数的名字和返回值类型。

func greet(name: String,day: String) ->String {

return "Hello \(name),today is \(day)."

}

greet("Bob","Tuesday")

//使用元组(tuple)来返回多个值。

func getGasPrices() ->(Double, Double,170)">Double) {

return (3.4,4.5, 6.5,7.6)

}

getGasPrices()

//函数可以接受可变参数个数,集合到一个数组中。

func sumOf(numbers: Int...) ->Int {

var sum = 0

for number in numbers {

sum += number

}

return sum

}

sumOf()

sumOf(100,120,10)

//编写一个函数计算其参数的平均值

func avgOf(numbers: Double...) -> Double {

var avg: Double = 0

var sum: in numbers {

sum += number

}

avg = sum / Double(numbers.count)

return avg

}

avgOf()

avgOf(34,67,216)"> 90)

//函数可以嵌套。内嵌函数可以访问其定义所在函数的变量。你可以使用内嵌函数来组织代码,避免函数过长和过于复杂。

func returnFifteen() -> 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(9)

//一个函数可以接受其他函数作为参数

func hasAnyMatches(list: [Int],condition: Bool) -> Bool {

for item in list {

if condition(item) {

return true

}

}

return false

}

func lessThanTen(number: Bool {

return number < 10

}


var numbers = [20,216)">17,216)"> 7,216)">12]

hasAnyMatches(numbers,lessThanTen)

//函数实际是闭包的特殊情况。你可以写一个闭包而无需名字,只需要放在大括号中即可。使用 in 把参数、返回值和函 数体分开。

numbers.map({

(number: Int in

let result = 3 * number

return result

})

numbers

//重写这个闭包,所有奇数返回0

var result = number

if(number % 2 != 0) {

result = 0 * number

return result

}

return result

})

//写闭包时有多种选项。当一个闭包的类型是已知时,例如代表回调,你可以忽略其参数和返回值,或两者。单一语句的

//闭包可以直接返回值。

numbers.map({ number in 3 * number})

//你可以通过数字而不是名字来引用一个参数,这对于很短的闭包很有用。一个闭包传递其最后一个参数到函数作为返回 值。


sort(&numbers) { $0 > $1}

numbers

原文链接:https://www.f2er.com/swift/326783.html

猜你在找的Swift相关文章