gpt4 book ai didi

go - 基于插入顺序的 slice 顺序保证

转载 作者:行者123 更新时间:2023-12-01 22:38:04 26 4
gpt4 key购买 nike

这是一个非常琐碎的问题,但我在这里找不到它。对不起,如果我错过了。
我可以计算 slice 中的顺序始终是该 slice 中元素插入的顺序吗?
我使用以下代码对其进行了测试:

func main() {
for i := 0; i < 10000; i++ {
testOrder()
}
}

func testOrder() {
sl := []int{}
for i := 0; i < 50; i++ {
sl = append(sl, i)
}
for i, el := range sl {
if el != i {
panic("Order not quaranteed")
}
}
}
用数字填充 slice ,然后检查 slice 中元素的顺序是否与填充其中的元素相同。我做这个检查 10000 次。

最佳答案

你不是插入而是追加。 append() 总是将元素附加到 slice 的末尾,并且不会留下“洞”。所以是的,你可以相信你的例子永远不会因为 "Order not guaranteed" 而 panic 。 .
阅读有关 append() 的更多信息其文档中的函数:https://golang.org/pkg/builtin/#append
也在 Spec: Appending to and copying slices
另请阅读官方博文:The Go Blog: Arrays, slices (and strings): The mechanics of 'append'

关于go - 基于插入顺序的 slice 顺序保证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63956862/

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