5
我已經跨越answer上關於「逆範圍」的問題跑,我要向下票,因爲它看起來非常錯誤的,但檢查和它的實際工作(!):轉:爲什麼推遲範圍循環以相反順序調用?
https://play.golang.org/p/4K2fDlSoCm
package main
import (
"fmt"
)
func main() {
s := []int{1, 2, 3, 4, 5}
for i, _ := range s {
defer fmt.Println(s[i])
}
}
,輸出是:
5
4
3
2
1
Program exited.
任何想法,爲什麼是這樣工作的?我是否確定它不能完全按照相反的順序執行?另外我不認爲這是編寫程序的好方法,但很好奇爲什麼我們會得到這個結果。
謝謝,現在完全有意義。但是,在循環內使用反向操作非常棘手,應該是非常有效的記憶方式。 –
是的,我記得不會因爲那個play.golang的例子而激動不已,因爲它太容易混淆了,它並沒有真正理解爲什麼它應該是相反的。很高興我能幫上忙! – dwanderson