Swift

Swift Day06 值类型 引用类型 闭包

2020-11-28  本文已影响0人  望穿秋水小作坊

一、值类型、引用类型

1. 用 let 修饰 结构体实例的值类型类实例的引用类型 时,分别修改它们的成员变量,能编译通过吗?
2. 方法和函数的区别?类、枚举、结构体都能定义方法吗?
3. 思考下面这个方法show,它的本质是什么?在代码段如何存储的?(非常重要)
class Point {
    var x = 11
    var y = 22
    func show() {
        print(x,y)
    }
}
var p = Point()
p.show()
func show(self: Point) {
  print(self.x, self.y)
}
4. 定义一个全局变量let a = 10,在底层机器码阶段,只知道 a 的地址上是一个存储着 10 这个数据,程序是怎么标记它是 Int 类型呢?(一个困扰很久的问题 )
查阅资料`https://qastack.cn/software/380347/how-do-variables-in-c-store-their-type`
5. 我们如何证明函数和方法(类中定义的函数),都是存放在代码段呢?
示例代码

二、闭包

1. 在 Swift 中有两种方式定义函数,哪两种?
闭包函数
2. 闭包表达式通常用于参数传递,可以进行简写(理解下列简写过程)
闭包表达式简写过程
3. 尾随闭包表达式?为什么要有?如何简写?
尾随闭包 尾随闭包
4. 闭包(Closure)是什么?
5. 请问下面闭包输出是什么?
闭包
6. 如何证明 num 被拷贝到了堆内存呢?
断点 1,没有形成闭包的情况 获取 堆内存中 num 对象的值
7. 如果上题中的 num 变成全局变量,会捕获吗?
8. 为什么可以把闭包想象成一个类的实例对象?
闭包 VS 类实例对象
9. 闭包闭包表达式有什么不同?
10. 一道综合题,测试对闭包的理解,请说出输出值?
综合题 答案
上一篇 下一篇

猜你喜欢

热点阅读