Swift – 如何知道循环何时结束?
请原谅我,因为我很快就熟悉了,而且一般编程。
相信我,当我说我努力了解这一点,但我根本不能,也不会很感激任何帮助。
说我有这个function:
func loop() { for var i=0; i<5; i++ { println(i) } }
我想打印到日志“循环已经完成”,一旦这个循环已经完成并完成运行,我将如何做到这一点? 如果我做:
func loop() { for var i=0; i<5; i++ { println(i) println("loop has finished") } }
那么每当我递增时,“循环已经完成”被打印。
我试过阅读closures和完成处理程序,但这一切都在我的头上,而我真的不明白我会如何实现上述任务。
如果有一位天使能够告诉我如何完成我的上面的例子,我会在你的债务。
谢谢你对我目前可怜的知识的耐心!
要产生与其他人发布的结果相同的结果,但使用基本的闭包语法:
func printFunction() { println("loop has finished") } func loopWithCompletion(closure: () -> ()) { for var i=0; i<5; i++ { println(i) } closure() }
这就是你如何称呼它:
loopWithCompletion(printFunction)
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() }
然后像这样调用它:
loop(withCompletion: printFunction)
要么
loop { print("this does the same thing") }
这是你试图实现的循环:
func loop() { for var i=0; i<5; i++ { println(i) println("loop has finished") } }
循环完成的原因被打印5次是因为它在for循环中。
当循环重复时(在这里input“在此input代码”),括号中的任何内容都将运行
for var i=0; i<5; i++ { enter code here }
循环工作的方式是,它会重复,直到条件完成:即i<5
。 你的ivariables从0开始,就像你在var i=0
说的那样,每当循环重复时,这个数字增加1,如i++
一旦i
不小于5(我等于5或大于5),那么你的for循环后面的代码将被运行。
所以,如果你把你的println(“循环已经完成”)放在for循环之后,你就会知道循环结束时会运行,就像这样:
func loop() { for var i=0; i<5; i++ { println(i) } println("loop has finished") }
func loop() { for var i=0; i<5; i++ { println(i) } println("loop has finished") }
你的代码不工作的原因是你在循环中有println()
语句,就像这样:
func loop() { for var i=0; i<5; i++ { println(i) println("loop has finished") } }
所以每次循环都打印出“Finished”。
为了解决这个问题,你需要做的就是在循环之后放置println()
语句,如下所示:
func loop() { for var i=0; i<5; i++ { println(i) } println("loop has finished") }
瞧。 你的应用程序现在将正常运行!