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

简介: 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,param2: Int,param3: Int) {

   //这里使用的param1,param2,param3是参数的内部命名

   param1+param2+param3

}

//调用函数的参数列表中使用的param1、param2和param3为外部命名

//swift3.0

myFunc5(param1: 1, param2: 2, 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

目录
相关文章
|
11天前
|
Swift C++ 索引
Swift开发——简单函数实例
函数是编程的基础,用于封装特定功能的代码。它们有关键词func、函数名、参数列表(可为空)和返回类型。多返回值可通过元组、数组、inout参数或可选类型实现。例如,返回元组 `(value1, value2)`,数组 `[value1, value2]` 或使用可选数组 `[[Double]]?`。函数可以作为其他函数的参数,类似闭包或Lambda表达式。在Swift中,示例展示了通过元组、带索引的元组、数组和可选类型返回多个值的函数。还演示了如何使用inout参数交换变量值。
24 5
Swift开发——简单函数实例
|
1月前
Swift4.0判断本函数是否在其它类有相同的方法
Swift4.0判断本函数是否在其它类有相同的方法
22 0
|
1月前
|
存储 API Swift
【Swift开发专栏】Swift函数与闭包的实战应用
【4月更文挑战第30天】本文介绍了 Swift 中函数和闭包的实战应用。首先,函数的基本使用包括定义、参数与返回值、函数类型以及高级技巧如嵌套函数。接着,讨论了闭包的语法,包括无名函数、作为函数参数、简写形式和尾随闭包。最后,展示了函数和闭包在实战中的应用,如排序过滤集合和处理异步任务的回调。
|
9月前
|
机器学习/深度学习 人工智能 物联网
大模型时代,还缺一只雨燕 | SWIFT:魔搭社区轻量级微调推理框架
伴随着大数据的发展和强大的分布式并行计算能力,以预训练+微调的模型开发范式渐渐成为深度学习领域的主流。 2023年各家推出的大模型浩如烟海,如GPT4、Llama、ChatGLM、Baichuan、RWKV、Stable-Diffusion等。这些模型在达到越来越好的效果的同时也需要越来越多的算力资源:全量finetune它们动辄需要几十至上百G显存训练部署,一般的实验室和个人开发者无力承担。
|
1月前
|
存储 Swift
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
57 1
|
1月前
|
Swift
Swift中的函数
Swift中的函数
28 1
|
1月前
|
存储 Swift
Swift中,函数和闭包
Swift中,函数和闭包
42 1
|
8月前
|
Swift
swift 闭包简写实际参数名$0、$1等理解
swift 闭包简写实际参数名$0、$1等理解
36 0
|
8月前
|
Swift iOS开发
23 Swift中如何定义和使用函数
Swift中如何定义和使用函数
63 0
|
9月前
|
Swift
Swift Debug 和 Release 中 print() 函数调试切换
Swift Debug 和 Release 中 print() 函数调试切换
47 0