Swift 个人学习笔记 - 07: 函数
本文章纯粹是中文版《The Swift Programming Language》的学习笔记,所以绝大部分的内容都是文中有的。本文是本人的学习笔记,不是正式系统的记录。仅供参考 以下还是有很多没看懂、不确定的地方,我会以“存疑”的注解指出。 在此感谢中文版翻译者,这极大地加快了 Swift 的学习速度。 本文地址:http://www.52php.cn/article/p-dihfmbwn-d.html Reference:原版:The Swift Programming Language 函数的基本知识在序言已经讲了,这里不重复。只是提一下少数进阶的功能。
可选返回类型如果一个函数的返回值的任一部分有可能是 func someFunc (array: [Int]) -> (min: Int,max: Int)? { ... } 注意
形参和实参在 C 里面,一个函数在声明的时候,可以只声明函数参数的类型,而不声明其名字。另外,也可以在声明的时候为参数指定名字,使得语义更加明确。而在函数实际使用(定义)的时候,你可以重新命名相应的参数名,便于实际的函数实现。在
比如有以下几个写法: // 完全没有形式参数,非常的 C-style func isLeftGreaterThanRight(_ left: Int,_ right: Int) -> Bool {...} // 这个例子我觉得可以说明形参和实参的区别所在,是不是很像 Objective-C 的方法名? func isNumber(_ left: Int,greaterThan right: Int) -> Bool {...} // 或者全部定义完全,个人觉得这个定义比较疯狂…… func check(number left: Int,isGreaterThan right: Int) -> Bool {...}
可变参数
func sum (numbers: Double) -> Double { var ret = 0.0 for eachNum in numbers { ret += eachNum } return ret }
“输入输出” 形式参数这里类似于 C 里面讲到指针时的地址引用,使用的也是相同的例子: func swap (_ a: inout Int,_ b: inout Int) { let temp = a a = b b = temp } 注意上面的
变量类型:“函数”就像 C 一样,函数也可以成为一个变量类型。 var someFuncVal : (Int,Int) -> Int = someFunc 调用的方式是:
函数内嵌函数的内部可以再定义一个函数,有点像 Objective-C 里面的 “代码块” 的作用。这里也很好理解,不展开 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |