swift-6-汇编分析闭包本质

一、枚举、结构体、类都定义方法

方法占用对象的内存么?

不占用

方法的本质就是函数

方法、函数都存放在代码段,因为方法都是公共的,不管 对象一还是对对象二调用都是一样的,所以放在代码段,但是每个对象的成员不一样所以放在每个对象的内存里面

二、闭包表达式

Swift 复制代码
在Swift中,可以通过func定义一个函数,也可以通过闭包表达式定义一个函数
函数的表示
func sum(_ v1: Int, _ v2: Int) -> Int { v1 + v2 }
闭包的表示
var fn = {
(v1: Int, v2: Int) -> Int in
return v1 + v2
}
fn(10, 20)

{
(v1: Int, v2: Int) -> Int in
return v1 + v2 }(10, 20)



{
(参数列表) -> 返回值类型  in 函数体代码
}

三、闭包表达式的简写

四、尾随闭包

如果将一个很长的闭包表达式作为函数的最后一个实参,使用尾随闭包可以增强函数的可读性

尾随闭包是一个被书写在函数调用括号外面(后面)的闭包表达式

五、数组的排序

六、闭包忽略参数

Swift 复制代码
func exec(fn: (Int, Int) -> Int) {
print(fn(1, 2))
}
exec {  ,  in 10 } // 10

自动推断类型

七、汇编分析闭包

相关推荐
半杯咖啡半行码10 小时前
STM32之ARM通用汇编指令详解:从指令格式到寻址方式
汇编·arm开发·stm32
Seeing515 小时前
音乐111111
汇编
Funlang16 小时前
从汇编到Fun语言
汇编
l1t19 小时前
DeepSeek总结的有符号、无符号、未对齐:从汇编到 SQL 的教训
汇编·数据库·sql
Hi202402177 天前
同一个 NMS 算子,两种语言实现:CUDA C 与 Rust 生成 LLVM IR 和 Vortex 汇编的差异
c语言·汇编·rust·gpgpu·vortex·cudac
lhbweilai7 天前
深挖FreeRTOS内核实现(二)
c语言·汇编·stm32·单片机
水饺编程7 天前
第1章:开发环境搭建,在 Windows 中安装 VS 2019
linux·c语言·汇编·visual studio
水饺编程8 天前
第1章:下载 Linux 0.12 内核
linux·c语言·汇编·ubuntu
水饺编程8 天前
第1章:开发环境搭建,在 Windows 中安装 Git
linux·c语言·汇编·git·ubuntu
水饺编程9 天前
第1章:在 Windows 中安装 GCC 套件
c语言·汇编