加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

苹果Swift语言入门教程【中文版】

发布时间:2016-09-28 16:26:02 所属栏目:语言 来源:gashero的Geek前哨
导读:副标题#e# 目录 1 简介 2 Swift入门 3 简单值 4 控制流 5 函数与闭包 6 对象与类 7 枚举与结构 1简介 今天凌晨Apple刚刚发布了Swift编程语言,本文从其发布的书籍《The Swift Programming Language》中摘录和提取而成。希望对各位的iOSOSX开发有所帮助。 Sw

5   函数与闭包

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

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

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

}

greet("Bob", "Tuesday")

Note

练习

去掉 day 参数,添加一个参数包含今天的午餐选择。

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

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

return (3.59, 3.69, 3.79)

}

getGasPrices()

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

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

var sum = 0

for number in numbers {

sum += number

}

return sum

}

sumOf()

sumOf(42, 597, 12)

Note

练习

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

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

func returnFifteen() -> Int {

var y = 10

func add()

{

y += 5

}

add()

return y

} //by gashero

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

}

var numbers = [20, 19, 7, 12]

hasAnyMatches(numbers, lessThanTen)

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

numbers.map({

(number: Int) -> Int in

let result = 3 * number

return result

})

Note

练习

重写一个闭包来对所有奇数返回0。

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

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

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

sort([1, 5, 3, 12, 2]) { $0 > $1 }

(编辑:济南站长网)

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

热点阅读