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

目录
相关文章
|
人工智能 并行计算 数据可视化
ms-swift 微调 internlm3-8b-instruct(论文分类任务)
本文介绍了使用InternLM系列模型进行论文分类任务的微调全过程,包括环境配置、数据准备、预训练与SFT(监督微调)、权重合并、模型评测及上传至魔搭社区等步骤。使用ms-swift框架和Lora训练方法,在具备40GB显存的A100 GPU环境下完成训练,并通过Swift工具进行效果评估。
1290 5
ms-swift 微调 internlm3-8b-instruct(论文分类任务)
|
Swift UED
Swift 中使用闭包处理事件
【10月更文挑战第20天】使用闭包来处理事件在 Swift 编程中是一种非常常见和有效的方式。它提供了简洁、灵活和高效的解决方案,使我们能够更轻松地实现各种交互功能。通过深入理解闭包的原理和应用方法,我们可以更好地利用闭包来处理各种事件,提升应用的用户体验和开发效率。
334 58
|
安全 开发工具 Swift
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
745 2
|
设计模式 安全 测试技术
Swift代码审查的关键点及最佳实践,涵盖代码风格一致性、变量使用合理性、函数设计、错误处理、性能优化、安全性、代码注释等方面,旨在提升代码质量和项目管理水平
本文深入探讨了Swift代码审查的关键点及最佳实践,涵盖代码风格一致性、变量使用合理性、函数设计、错误处理、性能优化、安全性、代码注释等方面,旨在提升代码质量和项目管理水平。通过实际案例分析,展示了如何有效应用这些原则,确保代码的高可读性、可维护性和可靠性。
572 2
|
安全 编译器 Swift
Swift 函数
10月更文挑战第27天
200 1
|
Swift C++ 索引
Swift开发——简单函数实例
函数是编程的基础,用于封装特定功能的代码。它们有关键词func、函数名、参数列表(可为空)和返回类型。多返回值可通过元组、数组、inout参数或可选类型实现。例如,返回元组 `(value1, value2)`,数组 `[value1, value2]` 或使用可选数组 `[[Double]]?`。函数可以作为其他函数的参数,类似闭包或Lambda表达式。在Swift中,示例展示了通过元组、带索引的元组、数组和可选类型返回多个值的函数。还演示了如何使用inout参数交换变量值。
367 5
Swift开发——简单函数实例
|
存储 Swift iOS开发
Swift 闭包
10月更文挑战第28天
245 0
|
Swift iOS开发 Kotlin
苹果iOS新手开发之Swift中实现类似Kotlin的作用域函数
Swift可通过扩展实现类似Kotlin作用域函数效果。如自定义`let`, `run`, `with`, `apply`, `also`,增强代码可读性和简洁性。虽无直接内置支持,但利用Swift特性可达成相似功能。
359 7
|
物联网 PyTorch 算法框架/工具
介绍一个大语言模型的微调框架Swift | AIGC
介绍一个大语言模型的微调框架Swift 【7月更文挑战第4天】
3218 3