【问题标题】:Not able to use recursion in swift无法快速使用递归
【发布时间】:2014-07-29 12:21:56
【问题描述】:

我正在使用这个功能

    func countFrom(from:Int, #to:Int) -> () {
        println("\(from)")
        if from < to {
             countFrom(from + 1, to: to)
        }
    }
    countFrom(1, to: 10)
}

但在编译时我得到 Swift 编译器错误 -

命令 /Applications/Xcode6-Beta2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift 失败,退出代码为 1

如果我删除了“countFrom(from + 1, to: to)”,那么就不会再有错误了。这有什么问题?

【问题讨论】:

  • 应该是self.countFrom...?
  • 这是 Xcode 6 beta 4 中的一个已知问题——递归的嵌套函数会使编译器崩溃。他们在发行说明中提到它,并说解决方法是“将递归函数移动到外部类型或模块上下文”。
  • "Command /Applications/Xcode6-Beta2.app/Contents/..." 好吧,对于初学者,我会在问太多问题之前升级到最新的测试版关于奇怪的行为。

标签: swift ios8 swift-playground


【解决方案1】:

回答:代码没问题,编译器过时了。根据@Matt 的评论,这在 Beta 4 中运行良好。

控制台输出:

1
2
3
4
5
6
7
8
9
10

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2020-08-14
    • 2019-11-16
    相关资源
    最近更新 更多