swift 闭包捕获列表

这篇具有很好参考价值的文章主要介绍了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”文章来源地址https://www.toymoban.com/news/detail-837447.html

到了这里,关于swift 闭包捕获列表的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Swift的高级语法特性,如可选类型、闭包、枚举、泛型、协议、扩展等

    Swift是一门现代化的编程语言,具有许多高级语法特性,下面我们来逐一介绍。 1. 可选类型(Optional) Swift中的可选类型是一种特殊的类型,它可以表示一个值是存在或不存在的。在声明一个可选类型时,需要在类型名称后面加上一个问号(?)来表示这个类型是可选的。例如

    2024年02月04日
    浏览(36)
  • iOS开发Swift-6-深色模式,类与对象,MVC模式,弹出框,闭包-趣味问答App

    1.创建趣味问答App项目  2.创建一个问题文本,水平居中约束。 创建蓝、红两个按钮,放入Stack View中,给StackView水平居中约束,下边约束,设置两按钮间距为20.  设置进度条view与safe View关系为equal width。设置他们的比例为1:13.  3.为系统增加深色模式适配(仅限iOS13以上版本

    2024年02月10日
    浏览(43)
  • iOS开发Swift-12-列表UI,TableViewController,动态响应Button勾选-待办事项App(1)

    1.创建新项目 为项目添加图标 2.将Table View Controller添加到界面中 将箭头移动到Table View上来,代表它是首页(根页面).选中ViewController,点击Delete,对它进行删除.将代码ViewController.swift也删除掉. 新建一个Cocoa Touch Class. 将TableViewController的class设置成TodosViewController. 2.为cell取名为TodoC

    2024年02月09日
    浏览(56)
  • Swift Coding Standards - Swift编码规范

    Swift Coding Standards - Swift编码规范 很适合各位swift开发者 Swift Coding Standards下载地址

    2024年02月16日
    浏览(47)
  • swift3.0 废弃 swift 4.0 以后字符串截取

    截取前 n 个字符: let str = \\\"Hello, Swift!\\\" let prefix = str.prefix(5) print(prefix) // \\\"Hello\\\" 截取后 n 个字符: let str = \\\"Hello, Swift!\\\" let suffix = str.suffix(6) print(suffix) // \\\"Swift!\\\" 截取指定范围内的字符: let str = \\\"Hello, Swift!\\\" let range = str.index(str.startIndex, offsetBy: 7)..str.endIndex let subString = str[range] p

    2024年02月14日
    浏览(39)
  • OC和Swift混编,导入头文件‘xxx-Swift.h‘ file not found

    在OC的项目里加入Swift代码,创建完桥接文件后,需要倒入Swift头文件,头文件的格式为“项目名-Swift.h”。 如下图,我在Xcode上看到我的项目名为YichangPark,导入 #import \\\"YiChangPark-Swift.h\\\" 之后提示 “YiChangPark-Swift.h”file not found. 言外之意,就是没有找到头文件! 解决办法: 1

    2024年02月10日
    浏览(45)
  • [Swift]单元测试

    编写单元测试是确保你的代码质量和功能正确性的重要步骤 如果你尚未创建一个项目,首先你需要在Xcode中创建一个新的iOS项目: 打开Xcode,选择“File” “New” “Project”。 选择一个适合的项目模板,例如“App”,然后点击“Next”。 填写项目的详细信息(如项目名称、团队

    2024年04月28日
    浏览(28)
  • 【swift 代码规范】

    List item 1.数据 2.网络请求 3.缓存处理 1.当前Controller需要的私有变量 2.当前Controller需要的全局或公开变量 1.当前Controller需要的结构体 2.当前Controller需要的enum 3.当前Controller需要的懒加载对象等 1.当前Controller声明周期函数 2.Controller布局常用的有xib、storyboard以及代码frame、代码

    2024年02月15日
    浏览(39)
  • Swift如何保证线程安全

    Swift可以通过以下几种方式来保证线程安全 使用互斥锁(Mutex):使用互斥锁可以防止多个线程同时访问共享数据,保证线程安全。 使用OSAtomic操作:OSAtomic操作可以在多线程环境中安全地执行原子操作。 使用DispatchQueue:DispatchQueue可以使用GCD技术实现线程安全。您可以使用

    2024年02月13日
    浏览(40)
  • SwiftUI + Swift 设备振动

    iPhone 6S 3D Touch,可以识别轻,中,重三种按压力度,配合恰到好处的振动有利于提升交互体验,但后面的新设备都不支持 3D Touch 了,改为了检测按压时间,按同一个图标,不同时间,交互,功能有所不同 Taptic Engine——聊聊iPhone的震动马达 随着iPhone 6S和6S Plus的发布,苹果推

    2024年02月13日
    浏览(54)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包