swift 闭包简写实际参数名$0、$1等理解

简介: swift 闭包简写实际参数名$0、$1等理解

刚入手公司的代码,发现如下几句话

if printer.sn != self.mineDevice.deviceSn {
                   _ = self.appendNewDevice(device: printer, deviceList: &self.foundList)
                   if self.appendNewDevice(device: printer, deviceList: &self.deviceList) {
                       self.deviceList.sort { $0.sn < $1.sn }
                       self.tableView.reloadData()
                   }
               }

后面查询到

Swift 自动对行内闭包提供简写实际参数名,你也可以通过 $0 , $1 , $2 等名字来引用闭包的实际参数值。

如果你在闭包表达式中使用这些简写实际参数名,那么你可以在闭包的实际参数列表中忽略对其的定义,并且简写实际参数名的数字和类型将会从期望的函数类型中推断出来。 in 关键字也能被省略,因为闭包表达式完全由它的函数体组成:

let numbers = [3,2,4,1,5,7,6];
var sortedNumbers = numbers.sorted(by:{$0 < $1});
print(sortedNumbers);//输出为:[1, 2, 3, 4, 5, 6, 7]
sortedNumbers = numbers.sorted(by:{$1 < $0});
print(sortedNumbers);//输出为:[7, 6, 5, 4, 3, 2, 1]

可以看出,可以用$0、$1、$2来表示调用闭包中参数,$0指代第一个参数,$1指代第二个参数,$2指代第三个参数,以此类推$n+1指代第n个参数,$后的数字代表参数的位置,一一对应。

如果你要点赞  去https://www.cnblogs.com/weixw/p/5885493.html


相关文章
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发
Swift 是苹果公司开发的现代编程语言,具备高效、安全、简洁的特点,支持类型推断、闭包、泛型等特性,广泛应用于苹果各平台及服务器端开发。基础语法涵盖变量、常量、数据类型、运算符、控制流等,高级特性包括函数、闭包、类、结构体、协议和泛型。
84 2
Swift 中使用闭包处理事件
【10月更文挑战第20天】使用闭包来处理事件在 Swift 编程中是一种非常常见和有效的方式。它提供了简洁、灵活和高效的解决方案,使我们能够更轻松地实现各种交互功能。通过深入理解闭包的原理和应用方法,我们可以更好地利用闭包来处理各种事件,提升应用的用户体验和开发效率。
Swift 闭包
10月更文挑战第28天
37 0
|
10月前
|
【Swift开发专栏】Swift函数与闭包的实战应用
【4月更文挑战第30天】本文介绍了 Swift 中函数和闭包的实战应用。首先,函数的基本使用包括定义、参数与返回值、函数类型以及高级技巧如嵌套函数。接着,讨论了闭包的语法,包括无名函数、作为函数参数、简写形式和尾随闭包。最后,展示了函数和闭包在实战中的应用,如排序过滤集合和处理异步任务的回调。
73 0
|
10月前
|
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
Swift 语言:什么是闭包(Closure)?它们与函数的区别是什么?
194 1
|
10月前
|
Swift中,函数和闭包
Swift中,函数和闭包
86 1
Swift实用小册06:函数的定义、参数、返回、调用
Swift实用小册06:函数的定义、参数、返回、调用
253 0
Swift实用小册06:函数的定义、参数、返回、调用
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.0 - day4-闭包、属性、方法、下标
349 0
Swift5.0 - day4-闭包、属性、方法、下标
Swift5.1—闭包的循环强引用
Swift5.1—闭包的循环强引用
253 0
Swift5.1—闭包的循环强引用

热门文章

最新文章

相关课程

更多
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等