首页 > 代码库 > Swift从零开始学习_04
Swift从零开始学习_04
Swift第四天
上周五有点事, 没有时间学习,周六周日又忙着去找房子了, 都没空看了, 有时间了一定坚持看!
主要还是函数的一些知识:
①.//变量拥有与函数相同的参数类型, 是可以直接赋值的
func makePlus(a:Int, b:Int)->Int{ return a + b}var replaceFun:(Int, Int)->Int = makePlus//变量拥有与函数相同的参数类型, 是可以直接赋值的println("Result: \(replaceFun(2,3))")
②.
//函数嵌套, 根据传入的bool值去判断执行哪一个函数
//函数嵌套, 根据传入的bool值去判断执行哪一个函数func returnBool(onreturn: Bool, testInput:Int)-> Int{ func boolIsYES(input:Int)->Int{ return input + 1 } func boolIsNO(input:Int)->Int{ return input - 1 } return onreturn ? boolIsYES(testInput) : boolIsNO(testInput)}var x = 2let y = returnBool(x > 0, 5)//(Int)->Int 表示返回参数为整形,返回值为整形的函数
③.//sort函数
sort(&names, backwards)//排序函数, 这里第二个参数需要传入一个参数是字符串, 返回值为bool的函数println(names)
④.//闭包表达式
//{ (parameters) -> returnType in statements}//排序对应的闭包函数,闭包的函数体部分由关键字in引入。 该关键字表示闭包的参数和返回值类型定义已经完成,闭包函数体即将开始。sort(&names, { (s1: String, s2: String) -> Bool in return s1 > s2 } )println(names)
⑤.
//根据上下文推断类型.由于swift的强大的推断能力, 所以这个闭包函数也可以写成, 他会自动根据上下文推断出数据类型sort(&names,{s1,s2 in s1 < s2}) //这里出现一个问题, 使用‘>‘号的时候会报错println(names)
⑥.
//参数名称缩写sort(&names, {$0 < $1})//同样这里使用‘>‘会报错,目前不知道原因println(names)
⑦.
//运算符函数, Swift 的String类型定义了关于大于号 (>) 的字符串实现,其作为一个函数接受两个String类型的参数并返回Bool类型的值, 同样这里也可以换成‘<‘, 这里就不会报错, 很奇怪啊sort(&names, >)println(names)
⑧.
//尾随闭包. 如果您需要将一个很长的闭包表达式作为最后一个参数传递给函数,可以使用尾随闭包来增强函数的可读性。 尾随闭包是一个书写在函数括号之后的闭包表达式,函数支持将其作为最后一个参数调用func funcUseClosure(){ }sort(&names){ $0 < $1}
对于这个闭包的概念, 说真的我看不太懂他什么意思, 由于之前都是用的OC, 对于这些闭包不太懂, 准备好好看看这个东西, 今天就暂且看这么多,去好好理解下闭包这东西去...
Swift从零开始学习_04
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。