无法快速使用递归
Posted
技术标签:
【中文标题】无法快速使用递归【英文标题】: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/..." 好吧,对于初学者,我会在问太多问题之前升级到最新的测试版关于奇怪的行为。 【参考方案1】:回答:代码没问题,编译器过时了。根据@Matt 的评论,这在 Beta 4 中运行良好。
控制台输出:
1
2
3
4
5
6
7
8
9
10
【讨论】:
以上是关于无法快速使用递归的主要内容,如果未能解决你的问题,请参考以下文章