一、枚举、结构体、类都定义方法
方法占用对象的内存么?
不占用
方法的本质就是函数
方法、函数都存放在代码段,因为方法都是公共的,不管 对象一还是对对象二调用都是一样的,所以放在代码段,但是每个对象的成员不一样所以放在每个对象的内存里面
二、闭包表达式
在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 函数体代码
}
三、闭包表达式的简写
四、尾随闭包
如果将一个很长的闭包表达式作为函数的最后一个实参,使用尾随闭包可以增强函数的可读性
尾随闭包是一个被书写在函数调用括号外面(后面)的闭包表达式
五、数组的排序
六、闭包忽略参数
func exec(fn: (Int, Int) -> Int) {
print(fn(1, 2))
}
exec { , in 10 } // 10
自动推断类型