dan*_*tin 7 xcode loops ios swift
请原谅我,因为我对swift和编程很新.
当我说我努力理解这一点时,请相信我,但我根本不能并且非常感谢任何帮助.
说我有这个功能:
func loop() {
for var i=0; i<5; i++ {
println(i)
}
}
Run Code Online (Sandbox Code Playgroud)
并且我想打印到日志"循环已完成"一旦这个循环完成并完成运行,我该怎么做?如果我做:
func loop() {
for var i=0; i<5; i++ {
println(i)
println("loop has finished")
}
}
Run Code Online (Sandbox Code Playgroud)
每次i递增后,"循环已完成"将被打印.
我已经尝试过阅读闭包和完成处理程序了,但是现在这一切都在我头脑中,我真的不明白我是如何完成上述任务的.
如果有一个天使可以告诉我如何完成上面的例子,我将负债累累.
谢谢你对我目前可怜的知识的耐心!
joh*_*lay 12
要产生与其他人发布的结果相同但具有基本闭包语法的结果:
func printFunction() {
println("loop has finished")
}
func loopWithCompletion(closure: () -> ()) {
for var i=0; i<5; i++ {
println(i)
}
closure()
}
Run Code Online (Sandbox Code Playgroud)
这就是你怎么称呼它:
loopWithCompletion(printFunction)
Run Code Online (Sandbox Code Playgroud)
Swift 3更新:
func printFunction() {
print("loop has finished")
}
// New for loop syntax and naming convention
func loop(withCompletion completion: () -> Void ) {
for i in 0 ..< 5 {
print(i)
}
completion()
}
Run Code Online (Sandbox Code Playgroud)
然后像这样称呼它:
loop(withCompletion: printFunction)
Run Code Online (Sandbox Code Playgroud)
要么
loop {
print("this does the same thing")
}
Run Code Online (Sandbox Code Playgroud)
这是您尝试实现的循环:
func loop() {
for var i=0; i<5; i++ {
println(i)
println("loop has finished")
}
}
Run Code Online (Sandbox Code Playgroud)
"循环已完成"的原因被打印5次是因为它在for循环中.
当循环重复时(我在此处输入"在此处输入代码),将在括号之间运行任何内容
for var i=0; i<5; i++ {
enter code here
}
Run Code Online (Sandbox Code Playgroud)
循环的工作方式是,它将重复直到条件完成:即i<5.如你所说,你的i变量从0开始 var i=0,每次循环重复时,这个数字增加1,如中所述i++
一旦i是不小于5(i是等于5或大于5个),则下面的for循环将被运行的代码.
所以如果你把你的println("循环已经完成")放在forloop之后,你知道它会在循环完成时运行,如下所示:
func loop() {
for var i=0; i<5; i++ {
println(i)
}
println("loop has finished")
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5465 次 |
| 最近记录: |