gpt4 book ai didi

pointers - 为什么 golang 中的字符串指针在范围循环中的行为违反直觉?

转载 作者:数据小太阳 更新时间:2023-10-29 03:18:56 25 4
gpt4 key购买 nike

使用此代码:https://play.golang.org/p/tCm1W-K-6ob

此代码将打印:[c c c],但 [a b c] 除外。

type A struct {
a *string
}

func f() {
slist := []string{"a", "b", "c"}
list := make([]*A, len(slist))
for i, v := range slist {
item := &A{
a: &v,
}
list[i] = item
}
fmt.Printf("[%s %s %s]", *list[0].a, *list[1].a, *list[2].a)
}

func main() {
f()
}

为什么列表不是 ["a", "b", "c"]?范围或 &string 发生了什么?

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com