在 Swift 中创建“forCount”控制结构

2024-04-14

在许多项目中,这种控制结构非常适合可读性:

forCount( 40 )
 {
 // this block is run 40 times
 }

你可以做正是如此 https://stackoverflow.com/a/4844280/294884在 Objective-C 中。

鉴于 Swift 有一个非常不同的宏方法比objective-c,

有没有办法创建这样一个forCount(40)Swift 项目中的控制结构?


Swift 中的一些类似概念:

for _ in 1...40
 { // this block is run 40 times }

使用对 Int 的巧妙扩展 https://stackoverflow.com/a/30554255/294884 ...

40.times
 { // this block is run 40 times }

Swift 中没有预处理器宏,但您可以定义一个全局的function将迭代计数和闭包作为参数:

func forCount(count : Int, @noescape block : () -> ()) {
    for _ in 0 ..< count {
        block()
    }
}

使用“尾随闭包语法”,它looks就像一个内置的 控制语句:

forCount(40) {
    print("*")
}

The @noescape属性允许编译进行一些优化 并引用实例变量而不使用self, see Swift 1.2 中的 @noescape 属性 https://stackoverflow.com/questions/28427436/noescape-attribute-in-swift-1-2了解更多信息。

As of Swift 3,“noescape”是函数的默认属性 参数:

func forCount(_ count: Int, block: () -> ()) {
    for _ in 0 ..< count {
        block()
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Swift 中创建“forCount”控制结构 的相关文章

  • Swift 中的 quitFirstResponder

    我怎样才能用Apple的新语言实现它 Objective C 代码 void touchesBegan NSSet touches withEvent UIEvent event for UIView view in self view s
  • 我的钳位宏有问题

    我的钳位宏有问题 当我的值超过 10 并且我的最高值超过 17 时 它会停止工作 任何想法 define CLAMP value low high value lt low low value gt high high value 我建议使
  • 在 Firebase 中构建聊天应用的数据

    我正在关注 Firebase 指南结构化数据 https firebase google com docs database ios structure data flatten data structures对于聊天应用程序 他们建议的结
  • 在SwiftUI中,如何高性能地绘制阴影?

    我用 shadow color radius x y 在我的应用程序中绘制阴影 这是我所知道的在 SwiftUI 中绘制应用程序的唯一方法 我用 sheet isPresented content 方法弹出一个视图 其中包含很多阴影 当我调
  • 在 Swift 中将动态 Int 变量从一个类传递到另一个类

    我是 swift 2 的新手 我陷入了将变量从一个类传递到另一个类的过程中 我有一个类 GameScene 我有一个公共变量score并且在更新功能中不断更新 我想发送score两个节点相互碰撞时的值 一旦它发生碰撞 我就会使用 mainv
  • let/var 如何解决可变性? [复制]

    这个问题在这里已经有答案了 我没有任何问题 我只是想对有关可变性的问题进行一些澄清 在 Objective C 中我们会使用例如NSMutableArray得到一个可变数组和NSArray得到一个不可变的 我对两者的内部运作了解不多 但据我
  • iOS WKWebView 处理文件下载

    我面临以下问题 在 Web 界面中 文件下载是通过锚标记触发的 如下所示 a href bla blabla a 虽然 Safari 浏览器可以处理此请求并打开一个对话框来处理文件 但 WKWebView 将此视为普通链接并且不对其执行任何
  • UITesting、XCTest 当前 ViewController 类

    简单的问题 我有一个按钮可以执行到下一个视图控制器的操作 我想写 UI XCTest 来告诉我它是否打开了我想要的视图控制器 UI 测试框架无法访问您的应用程序代码 这使得无法对实例进行类断言 你不能够directly告诉屏幕上的控制器的类
  • Swift:检查 UISearchBar.text 是否包含 url

    如何检查 UISearchBar text 是否包含 URL 我想做这样的事情 if searchBar text NSTextCheckingType Link 但我收到错误 String is not convertible to NS
  • iOS Swift 在后台下载大量小文件

    在我的应用程序中 我需要下载具有以下要求的文件 下载大量 例如 3000 个 小 PNG 文件 例如 5KB 逐个 如果应用程序在后台继续下载 如果图像下载失败 通常是因为互联网连接丢失 请等待 X 秒然后重试 如果失败Y次 则认为下载失败
  • 针对 iOS 10.3 进行编译,但模块“SwiftUICharts”的最低部署目标为 iOS 13.0

    知道如何仅在 iOS 版本超过 iOS 13 时导入 SwiftUICharts 框架吗 我通过 文件 gt Swift 包 gt 添加包依赖项 添加了此框架 我的应用程序目标必须是 iOS 10 我将此框架导入到 swiftui 控制器中
  • 如何使用 Swift 将“完成”按钮添加到 iOS 中的数字键盘?

    它在默认键盘上工作得很好 但我无法让它在数字键盘上工作 有任何想法吗 据我所知 你不能在键盘部分添加 完成 按钮 你应该添加一个inputAccessoryView to the UITextField or UITextView 如果这就
  • 循环多个 UIAlertController

    在某些情况下 我的应用程序需要显示多个警报消息 错误消息在启动时收集 并且需要一次向用户显示一条 当第一个被确认后 应该呈现下一个 问题在于 显然 它们都试图同时执行 有没有一种聪明的方法可以同步执行此操作 这是一些简单描述我想要做的事情的
  • 如何将自定义 C 代码放入 SwiftPM 包中?

    我正在尝试将 C 代码打包到 Swift 模块中 我们称之为CModule 一旦我将其放入项目的基本文件夹中 Swift模块 并配置了搜索路径 我可以在 Swift 文件中自动完成工作 并检测错误 警告 问题是 导入时它无法识别该模块 并且
  • 为什么在迭代字典时会出现“类型 [object] 的值没有成员 'lowercaseString'” 错误? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有几个对象 Struct object var title String var one object green v
  • Xcode 错误 - 架构 x86_64 的未定义符号?

    我正在运行 Swift 4 和 Xcode 9 beta 我收到此错误 但我不知道如何解决它 我什至不知道这是什么意思 Undefined symbols for architecture x86 64 T0So22AVCapturePho
  • 将自定义图像设置为 UIBarButtonItem 但它不显示任何图像

    我想将自定义图像设置为 UIBarButtonItem 但它只显示周围的矩形框并且不显示实际图像 func setupBrowserToolbar let browser UIToolbar frame CGRect x 0 y 20 wi
  • 调用 SwiftUI 中位置 #11、#12 处的额外参数 [重复]

    这个问题在这里已经有答案了 我在 SwiftUI 中的切换开关上不断收到 调用中位置 11 12 处有额外参数 错误 我见过其他人有 调用中的额外参数 错误 但答案似乎没有帮助 另外 我的错误是 位置 11 12 我还没有看到其他人发生这种
  • 在 swift 中将简单字符串转换为 JSON 字符串

    我知道有一个同标题的问题here https stackoverflow com questions 30825755 convert string to json string in swift 但在那个问题中 他试图将字典转换为 JSO
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图

随机推荐

  • 无法从配置的远程连接到存储库。你想检查 .git 配置

    我尝试将我的存储库共享到 Android Studio 中的 Github 并收到以下消息 无法从配置的远程连接到存储库 您可能需要检查 git 配置 如果我忽略并共享 Github 会创建一个空存储库并且不会上传 git 文件 我重新安装
  • 在应用程序结算项目中未发现错误?

    我一直在尝试在我的应用程序中实施 Google Play 的应用程序计费 我正在尝试实现示例应用程序并对其进行测试 我已遵循其中的所有程序http developer android com guide google play billin
  • matlab:有没有办法将变量从结构导入/提升到当前工作区?

    function y myfunc param C param C L param L Kp param Kp Ki param Ki 有没有办法概括上面的代码 我知道如何使用来概括结构访问fieldnames and getfield 但
  • Airflow Worker - 连接中断:IncompleteRead(0 字节读取)

    使用 Airflow Worker 和 Web 服务器 调度程序作为在 EC2 上的 Kubernetes Engine 上运行的 Docker 映像 我们有一个任务KubernetesPodOperator这是资源密集型的 每 15 分钟
  • std::make_index_sequence 和 std::index_sequence 的详细信息

    我很喜欢增加可变参数模板 并开始摆弄这个新功能 我正在尝试了解实施细节std index sequence s 用于元组实现 我在那里看到了示例代码 但我真的想要一个简单的逐步解释 说明如何std index sequence已编码 并且每
  • 合并字典并添加值

    我有几个字典 我想将它们组合起来 这样如果一个键位于多个字典中 则值会添加在一起 例如 d1 1 10 2 20 3 30 d2 1 1 2 2 3 3 d3 0 0 merged 1 11 2 22 3 33 0 0 在 Python 中
  • 如何使用Java读取(.bib)文件格式的内容

    我需要读取 bib 文件并将其标签插入到 bib entries 的对象中 文件很大 几乎 4000 行 所以我的第一个问题是使用什么 bufferedReader 和 FileReader 一般格式是 ARTICLE orleans01D
  • 最坏情况时间复杂度 put/get HashMap

    当 Hashmap 的键的哈希码始终相等时 它的最坏情况时间复杂度是多少 根据我的理解 由于每个键都有相同的哈希码 因此它总是会进入同一个存储桶并循环遍历它以检查 equals 方法 因此对于 get 和 put 时间复杂度应该是 O n
  • RenderFlex 底部溢出了 99241 像素,并且 Null 检查运算符用于 null 值

    小部件库捕获异常 构建 BottomTabBtn dirty 时抛出以下 CastError 对空值使用空检查运算符 The relevant error causing widget was BottomTabBtn file C Use
  • Node.js 中 I/O 密集型的含义是什么

    我正在学习 Node js 还发现 Node js 最适合用于 I O 密集型任务 这让我有点困惑 因此 经过一些研究 我发现了这样的说法 读取和 或写入大量数据的应用程序 那么 这是否意味着 Node js 最好与数据一起使用 即读取大数
  • Camel-Jetty http代理+大响应数据导致问题:缓冲容量超出

    jetty专家 我在通过camel jetty作为http代理获取大数据时出错 欢迎任何经验 想法 建议 提前致谢 路线构建器代码 from servlet balancer matchOnUriPrefix true to jetty h
  • JVM 规范更新

    JVM 规范第 2 版的日期是 1999 年 自那时以来 我应该考虑学习哪些重要更新 如动态调用 这当然是为了了解现代 JVM 实现的内部原理 特别是 HotSpot 访问此链接http wikis sun com display HotS
  • 快速设置我的条形图的水平滚动

    我正在使用 Daniel Cohen Gindi 的图表框架 它很棒 但是 我希望我的条形图水平滚动以查看其他数据 我尝试添加滚动视图 但没有成功 我也尝试了不同的值 例如 barChart setVisibleXRangeMaximum
  • 捕获 Exception 类而不是 Exception 子类是不好的做法吗?

    我有一个抛出 Exception 子类的方法 如果我对 Exception 的每个子类执行相同的捕获功能 那么仅捕获 Exceptions 类是不好的做法 还是应该单独捕获每个异常 是的 这是不好的做法 因为它使 catch 块捕获不应该捕
  • 在silverlight中获取xml中的所有节点名称

    我创建了一个这样的xml
  • 带有 CoordinatorLayout 的 Snackbar 禁用关闭

    我正在使用支持 浮动操作按钮 Snackbar 协调器布局 我需要协调器布局这样如果SnackBar显示的是浮动操作按钮向上移动以为 Snackbar 腾出空间 为了更好地理解 请检查此video http material design
  • JSF 表格和德语变音符号

    我在我的一个 JSF 这是一个 Facelet 中遇到了一个奇怪的问题 我正在使用 Richfaces 在一页上我得到了一个普通表单
  • Application.Current.Shutdown() 不会终止我的应用程序

    我刚刚启动了一个新的 C WPF 应用程序 并使用了来自WPF Contrib 项目 http wpfcontrib codeplex com 我可以启动程序 将 退出 菜单项添加到 NotifyIcon 的 ContextMenu 然后将
  • 反 CSRF cookie?

    我正在构建一个大量使用ajax 的应用程序 大多数反 CSRF 解决方案都围绕将一些信息放入视图状态并在发布时处理该数据 但是 我无权访问 ajax 调用中的视图状态 我计划生成一个 GUID 以在 cookie 和会话状态中插入令牌 使
  • 在 Swift 中创建“forCount”控制结构

    在许多项目中 这种控制结构非常适合可读性 forCount 40 this block is run 40 times 你可以做正是如此 https stackoverflow com a 4844280 294884在 Objective