package main
import (
"fmt"
)
func main() {
cars := []string{"toyota","honda","bmw"}
for idx,car := range cars{
fmt.Printf("car at:%p\n", &car)
fmt.Printf("cars[%d] at:%p\n", idx,&cars[idx])
}
}
import (
"fmt"
)
func main() {
cars := []string{"toyota","honda","bmw"}
for idx,car := range cars{
fmt.Printf("car at:%p\n", &car)
fmt.Printf("cars[%d] at:%p\n", idx,&cars[idx])
}
}
https://play.golang.org/p/JuH5WdOw7q
這段程式碼跑的結果是這樣:
car at:0x1040a120
cars[0] at:0x10432200
car at:0x1040a120
cars[1] at:0x10432208
car at:0x1040a120
cars[2] at:0x10432210
每次從切片取出來的內容都是放到同一個 car。
因此不能利用car這個變數的位置來作為後續使用,而是要直接用idx索引 cars。
沒有留言:
張貼留言