gpt4 book ai didi

arrays - 在 Go 中,如何确定数组中 slice 的偏移量?

转载 作者:IT王子 更新时间:2023-10-29 02:30:10 27 4
gpt4 key购买 nike

我知道 a1 是数组 a 中的一个 slice 。是否可以确定 a1 相对于 a 开头的偏移量(基本上是模拟指针算法)?

a := [...]int8 {3,1,4,1,5,9,2,6,5,3,5,8,9,7,9,3,2}
a1 := a[3:14]
fmt.Println(a1, "has length", len(a1), "and offset", /*offset(a1,a)*/)

最佳答案

这是一种方法:

a := [...]int8{3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2}
a1 := a[3:14]
fmt.Println(a1, "has length", len(a1), "and offset", cap(a)-cap(a1))

表达式 a[p:e] 返回容量等于 cap(a) - p 的 slice 。给定 slice a1 和支持数组 a,您可以将 p 计算为 p = cap(a) - cap(a1)

playground example

关于arrays - 在 Go 中,如何确定数组中 slice 的偏移量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29110426/

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