您的位置:首页 > 移动开发 > Swift

Swift函数

2016-01-28 16:11 232 查看
外部形参名
func join(string s1:String,toString s2:String,withString withJoiner:Strinhg){}

join(string: "hello", toString: "world", withJoiner: ", ")

外部形参名与本地形参用空格隔开。外部形参使你的参数的用途更加明确。在调用函数的时候也,如果每个参数目的清晰,就无需指定外部参数
如果本地参数名已经使用了合适的名字,那么可以使用#代替外部形参,表示外部形参与本地形参一样。

在定义形参时,可以使用_来代替显示外部名称。

可变形参
func airMake(numbers:Double...) -> Double{

}
airMake(1,2,3,5)

函数只能有一个可变形参,并且它只能出现在参数列表的最后,以避免多个形参调用函数引发歧义。如果有默认形参,也放在默认形参之后(最末尾)
函数的形参默认是常量。试图在函数体内修改形参的值会发生一个编译时的错误。
如果需要一个变量副本。可以指定一个或者多个形参作为变量形参,从而避免在函数内部自己定义一个新的变量。变量参数给函数一个可修改的副本
eg:func fun(var string:String,count:Int)->String{
//可以修改string的值
}
对变量形参所做的改变不会比调用函数更持久,并且在函数体外是不可见的。变量形参仅仅存在于函数调用的生命周期中
In-Out形参
变量形参只能在函数体内改变。如果你想让函数改变形参值,并且想要在函数调用结束后保持形参值的改变,那就可以把形参定义成In-Out形参
关键字inout
In-Out形参有一个传递至函数的值,由函数修改,并且从函数返回替换原值。
只能传递一个变量作为in-out形参对应的实参。把变量作为实参传递给in out形参时,需要直接在变量前添加&符号,表明它可以被函数修改
提示:in-out参数不能有默认值,参数被inout修饰就不能再被var 或let修饰
eg:func swap(inout a:Int){}
var someInt = 1
swap(&someInt)
函数的类型
函数的参数类型->函数的返回类型
()->()//无参无返回值
使用函数类型
eg:var funVariable :(Int,Int)->Int = addTwoInts
函数类型跟其他类型一样使用
函数的类型可以作为其他函数的形参类型
eg:func swap(inout a:(Int,Int)->Int){}
函数的类型可以作为其他函数的返回类型

eg:func swap(inout a:Int)->(Int)->Int{}

嵌套函数
函数里面再声明并调用函数,嵌套函数可以使用被嵌套函数中的变量常量
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: