var car = "Benz" let closure = { [car] in print("I drive \(car)") } car = "Tesla" closure()
因为 clousre 已经申明将 car 复制进去了([car]),此时clousre 里的 car 是个局部变量,不再与外面的 car有关,所以会打印出"I drive Benz"。 此时面试官微微一笑,将题目略作修改如下:
var car = "Benz" let closure = { print("I drive \(car)") } car = "Tesla" closure()
此时 closure 没有申明复制拷贝 car,所以clousre 用的还是全局的 car 变量,此时将会打印出 "I drive Tesla"
这道题你会答吗?花几分钟告诉大家答案吧!
要设置一条...
扫描二维码,关注牛客网
下载牛客APP,随时随地刷题
因为 clousre 已经申明将 car 复制进去了([car]),此时clousre 里的 car 是个局部变量,不再与外面的 car有关,所以会打印出"I drive Benz"。
此时面试官微微一笑,将题目略作修改如下:
此时 closure 没有申明复制拷贝 car,所以clousre 用的还是全局的 car 变量,此时将会打印出 "I drive Tesla"