Swift   发布时间:2022-03-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Swift3.0带来的变化汇总系列三——函数和闭包写法上的微调大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

Swift3.0带来的变化汇总系列三——函数写法上的微调 一、函数方面     Swift3.0相比Swift2.2的版本在API上做了大量的修改,代码风格也更加统一。在函数方面,Swift3.0中做的最大修改是修改了内部名称与外部名称的默认规则。     在Swift2.2中,函数参数列表的第一个参数如果开发者不手动设置外部名称,默认是匿名的,除第一个参数以外的其他参数,开发者如果不设置外部名称

Swift3.0带来的变化汇总系列三——函数写法上的微调

一、函数方面

Swift3.0相比Swift2.2的版本在API上做了大量的修改代码风格也更加统一。在函数方面,Swift3.0中做的最大修改修改了内部名称与外部名称认规则。

在Swift2.2中,函数参数列表的第一个参数如果开发者不手动设置外部名称认是匿名的,除第一个参数以外的其他参数,开发者如果不设置外部名称认外部名称是和内部名称相同的,因此在调用函数时,代码常常是这样的

//多参数函数Swift2.2中 第一个参数认匿名,其他参数认内部命名与外部命名相同
func MyFunc5(param1: Int,param2: Int,param3: int) {
    //这里使用的param1,param2,param3是参数的内部命名
    param1+param2+param3
}
//调用函数的参数列表中使用的param2和param3为外部命名
MyFunc5(1,param2: 2,param3: 3)

Swift3.0中将这一规则修改为:如果开发者不设函数中参数的外部名称,则全部参数都认外部名称和内部名称相同,上面相同的代码,在Swift3.0的环境下是下面这样的:

//多参数函数 认内部命名与外部命名相同
func MyFunc5(param1: Int,param3: int) {
    //这里使用的param1,param2,param3是参数的内部命名
    param1+param2+param3
}
//调用函数的参数列表中使用的param1、param2和param3为外部命名
//swift3.0
MyFunc5(param1: 1,param3: 3)

Swift3.0在函数参数名方面的微调使得函数的参数名规则更加统一也更加符合Swift语言的风格。

函数方面,Swift3.0中做的另一项更改是关于inout参数的声明方式,修改了inout关键字的声明位置,Swift2.2与Swift3.0版本比如如下:

//在函数内部修改参数变量的值
//swift2.2
func MyFunc12(inout param:int){
    param+=1
}
//swift3.0
func MyFunc12( param:inout int){
    param+=1
}

有关Swift中函数的更多内容,可以在如下博客连接中找到:

http://my.oschina.net/u/2340880/blog/674616

二、闭包方面

在闭包方面,Swift3.0版本中只对某些修饰符的位置做了修改。示例如下:

//逃逸闭包
//swift2.2
//func MyFunc(@noescape closure:(Int,int)->Bool){
//    
//}
//swift3.0
func MyFunc( closure:@noescape(Int,int)->Bool){

}
//自动闭包
//swift2.2
//func MyFunc2(@autoclosure(escaping) closure:()->Bool)  {
//    
//}
func MyFunc2( closure:@autoclosure(escaping)()->Bool)  {
    
}

关于Swift中闭包的更多内容,可以在如下博客链接中找到:

http://my.oschina.net/u/2340880/blog/675233

大佬总结

以上是大佬教程为你收集整理的Swift3.0带来的变化汇总系列三——函数和闭包写法上的微调全部内容,希望文章能够帮你解决Swift3.0带来的变化汇总系列三——函数和闭包写法上的微调所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。