【问题标题】:Xcode 10.1 "return" statement doesn't stop function execution [duplicate]Xcode 10.1“return”语句不会停止函数执行[重复]
【发布时间】:2019-08-12 08:01:21
【问题描述】:

Xcode 10.1 中的return 语句不受调试器支持,

例如,

    func doSomething() {

        print("Task A")
        return

        print("Task B")
    }

打印出来

Task A
Task B //This is not expected to be printed as we have a `return` before this line 

谁能帮帮我!

【问题讨论】:

  • 这不应该发生。尝试清洁并重建。有时 Xcode 会失去理智,在您进行更改后不会重新构建您的源文件。
  • @DuncanC:它确实发生了(请参阅链接到的问答)。 Swift 执行语句return print("Task B"),打印字符串并返回 void。 – 这是否应该被视为错误是另一回事。插入分号会有所帮助。
  • @MartinR,这绝对不是错误,只是非强制分号语法的自然怪癖。

标签: ios swift xcode return xcode10.1


【解决方案1】:

因为return 之后的表达式被视为return 的参数。
所以你的代码被编译器理解为:

func doSomething() {
    print("Task A")
    return print("Task B")
}

为防止出现这种情况,您可以使用分号明确分隔此表达式。
像这样:

func doSomething() {
    print("Task A")
    return;
    print("Task B")
}

【讨论】:

猜你喜欢
  • 2014-09-17
  • 1970-01-01
  • 2014-04-05
  • 1970-01-01
  • 2021-09-10
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 2020-05-21
相关资源
最近更新 更多