swift 闭包捕获列表

以下函数会打印出什么?

复制代码
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"

相关推荐
菜的不敢吱声1 天前
swift学习第2,3天
python·学习·swift
大熊猫侯佩2 天前
拒绝“假死”:为何上滑关闭是测试大忌?揭秘 iOS 真实 OOM 触发指南
app·swift·apple
大熊猫侯佩2 天前
Swift 6.2 列传(第十六篇):阿朱的“易容术”与阿紫的“毒药测试”
swift·编程语言·apple
麦兜*2 天前
【Swift】苹果App开发全流程解析:从Xcode配置到App Store上架避坑指南
xcode·swift
JQShan3 天前
Core Data 简化开发:NSPersistentContainer 从原理到实战
swift
东坡肘子3 天前
2026:当 AI 隐入工作流,你准备好了吗? -- 肘子的 Swift 周报 #117
人工智能·swiftui·swift
菜的不敢吱声3 天前
swift学习第一天
开发语言·学习·swift
大熊猫侯佩4 天前
2026 码农漫游:AI 辅助 Swift 代码修复指南
swift·编程语言·apple
大熊猫侯佩4 天前
Swift 6.2 列传(第十五篇):王语嫣的《万剑归宗》与 InlineArray
swift·编程语言·apple
初级代码游戏7 天前
iOS开发 SwiftUI 2 : Image
ios·swiftui·swift