我有一个函数,在某些情况下我希望它连续使用两次,有没有办法在其内部调用函数
类似的东西,我的功能要长得多,做这样的事情可以节省很多时间
func theFunc() {
count++
if count < 4 {
thFunc()
}
}
Run Code Online (Sandbox Code Playgroud)
这称为递归,它是完全合法的:
var count = 0
func theFunc() {
print(count)
count += 1
if count < 4 {
theFunc()
}
}
theFunc() // 0 1 2 3
Run Code Online (Sandbox Code Playgroud)
唯一的诀窍就是不要过于沉重,因为你冒着资源耗尽的风险,不要忘记放置某种"塞子"(比如你的if count < 4),以免你永远逃脱,导致(讽刺的)堆栈溢出.
[专家额外:有一些语言,如LISP,针对递归进行了优化,并且递归实际上优先于循环!但斯威夫特并不是其中之一.]
| 归档时间: |
|
| 查看次数: |
1703 次 |
| 最近记录: |