Swift - 从闭包中退出外部函数

2024-01-27

在 Kotlin 中,您可以从闭包的外部函数返回。

   fun main(args: Array<String>) {
     val letters = listOf("A", "B", "C")

     fun lookForLetter(letter: String, letters: List<String>){
        letters.forEach { l ->
          if (l == letter) {
            println("Found")
            return
          }
          println(l)
        }
        println("Completed")
      }

      lookForLetter("A", letters = letters)
   }

Output:

Found

在 Swift 中,return 退出闭包的执行

var letters = ["A", "B", "C"]

func lookForLetter(letter: String, letters: [String]) {
    letters.forEach { (l) in
        if l == letter {
            print("Found");
            return
        }
        print(l)
    }
    print("Completed")
}

lookForLetter(letter: "A", letters: letters)

Output:

Found

B

C

完全的

有没有办法在 Swift 中达到相同的结果?


Swift 没有闭包的非本地返回。换句话说,没有直接的方法可以从多个级别返回。这仅适用于 Kotlin 中的内联函数,但 Swift 没有这种区别。

还有其他收集方法,例如,一旦找到元素就会停止index(where:).

func lookForLetter(letter: String, letters: [String]) {
    guard let _ = letters.index(where: { (l) in
        if l == letter {
            print("Found");
            return true
        }
        print(l)
        return false
    }) else {
        print("Completed")
        return
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Swift - 从闭包中退出外部函数 的相关文章

随机推荐

  • 在wxPHP中更新属性时如何刷新wxAuiManager窗格?

    我设置了一个简单的wxAuiManager系统包含八个文本控件 每个控件都设置为一个窗格 全部围绕一个中央静态控件排列 我有两个分别捕捉到顶部 左侧 右侧和底部窗格方向 这部分工作正常 我现在想修改每个窗格的属性 我认为可以通过重置关联的来
  • 使用 Fetch API 递归返回分页输出

    Summary 我想使用 JavaScript 的 Fetch API 递归地将分页输出整理到数组中 从 Promise 开始 我认为 async await 函数会更合适 Attempt 这是我的方法 global fetch requi
  • 为什么 Windows 上的 strftime() 返回 false? (我没有使用%e)

    这是我的代码 var dump strftime m d Y l M S time echo br var dump strftime Y d m H M S time 第一行返回 false 第三行返回预期的字符串 2012 10 09
  • 计算 NYSE 交易日的函数

    希望有人可以提供一个给定日期的函数 它将返回纽约证券交易所当月的交易日 如果考虑到假期 那就是额外的好处 如果没有 我也不太担心 提前致谢 我的个人包中有一个函数 名为TradingDates使用假期的 日历从timeDate http c
  • 需要帮助修复近似 pi 的算法

    我正在尝试为近似的算法编写 C 代码pi 它应该得到一个立方体的体积和该立方体内部球体的体积 球体的半径是立方体边长的 1 2 然后我应该将立方体的体积除以球体的体积并乘以 6 以获得 pi 它正在工作 但它在应该获得卷的部分做了一些奇怪的
  • IPython 在打印时忽略对象的 __repr__

    我写了一个子类defaultdict 我给了它自己的 repr 方法以便在交互式会话中自定义其外观 在常规 Python 会话中 这会按预期工作 Python 3 5 0 default Sep 20 2015 11 28 25 GCC 5
  • 在 C# 中,如何像 google calc 一样实现模数?

    我有一个代表形状的类 Shape 类有一个名为 Angle 的属性 我希望此属性的设置器自动将值包装到范围 0 359 中 不幸的是 一个简单的 Angle value 360 仅适用于正数 在 C 中 40 360 40 谷歌计算器可以做
  • 如何使用 FileHelpers 库将大型 SQL Server 表导出到 CSV 文件?

    我希望使用 C 和 FileHelpers 库将大型 SQL Server 表导出到 CSV 文件中 我也可以考虑 C 和 bcp 但我认为 FileHelpers 会比 bcp 更灵活 速度不是特殊要求 OutOfMemoryExcept
  • 开发和测试环境的不同 DateTimeFormat

    在我的 ASP NET MVC 项目中的 global asax cs 的 Application BeginRequest 方法中有代码 Thread CurrentThread CurrentCulture CultureInfo Cr
  • 调用带有太多参数的函数时的 GCC 行为

    我刚刚注意到 GCC 的一个行为对我来说似乎很奇怪 没有与其他编译器进行检查 如果我编译这段代码 include
  • sparql 精确匹配正则表达式

    我使用以下 sparql 查询从 dbpedia 中提取与特定信息框匹配的页面 PREFIX dbo
  • 共享会话与默认配置的会话

    两者有什么区别session以这两种不同方式创建的对象 NSURLSession session NSURLSession sharedSession and NSURLSessionConfiguration configuration
  • 返回后更新导航抽屉的选定状态

    后按后处理导航抽屉的选定状态的正确方法是什么 我有一个带有 n 个条目的导航抽屉 在列表视图中 就像 Android Studio 中的 SDK 示例一样 当我单击导航抽屉条目时 我希望将它们添加到后堆栈中 以便我可以返回到它们 在 onN
  • 如何更改 Vaadin 中的默认 HTML 模板

    我正在使用 Vaadin 和 Maven 应用程序 我想要的是更改默认的 html 模板 当我运行该应用程序时 生成的 HTML 如下所示
  • 我需要帮助为 SpeechSynthesizer 创建词典。某种模板,这样我就可以知道如何创建一个

    或多或少就是标题所说的 我希望创建一个希腊语文本到语音的词典 这样我就可以为 SpeechSynthesizer 创建我的语言 我在哪里可以找到某种模板 或者一些指导 或者您可以提供的任何内容都是可以接受的 因为 SpeechSynthes
  • Iron Python:Iron Python 有什么好处 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我对 python 很感兴趣 但我在 NET 环境中工作 所以我正在研究 Iron Python 并想知道它的用途 你能在里面写一个应
  • 使用多处理模块

    我正在尝试使用 python 2 6 中的多处理模块 但显然有一些我不明白的东西 我希望下面的类将通过 add 发送给它的数字相加 并在 get result 方法中返回总和 下面的代码打印 0 我希望它打印 2 我错过了什么 import
  • 无法将非有限值(NA或inf)转换为整数[重复]

    这个问题在这里已经有答案了 我有一个数据框看起来像这样 survived pclass sex age sibsp parch fare embarked 0 1 1 female 29 0000 0 0 211 3375 S 1 1 1
  • 在android studio中导入类[重复]

    这个问题在这里已经有答案了 我是 Android Studio 的新手 我不知道如何在Android Studio中导入类 使用快捷键 I have used Ctrl 1 like Eclipse but it s not working
  • Swift - 从闭包中退出外部函数

    在 Kotlin 中 您可以从闭包的外部函数返回 fun main args Array