gpt4 book ai didi

arrays - 我可以在 Go 中使用 "displaced"数组基数吗?

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

我有一个问题可以使用“置换数组基数”很好地解决。也就是说,在 C 中,我会设置一个指向 array-base + offset 的指针,然后使用 ptr[x] 访问我的数组,这实际上是 array[offset + x]但没有额外添加。

这样的事情在 Go 中可能吗?从我读过的内容来看,我找不到对它的任何支持(包括 Go 中没有指针算法的声明),但是到目前为止我还不熟悉 slice 和其他东西,我想要一个更有经验的意见。

编辑

考虑三种可能的情况:

  1. 我创建了一个数组,并想使用数组的某个“中间索引”作为基础:

    sign_values := { -1, -1, -1, -1, -1, 0, 1, 1, 1, 1, 1 }
    sign := sign + 5
    i = f(x) // returns [-5 .. 5]
    sign_i = sign[i]
  2. 我创建了一个数组,并希望使用数组的一些“负偏移量”作为基数:

    to_lower := { 'a', 'b', 'c', 'd', 'e', ..., 'z' }
    tolower := to_lower - 'A'

    func ToLower(ch byte) byte {
    if isupper(ch) {
    return tolower[ch]
    }

    return ch
    }
  3. 我创建了一个数组并希望使用一些“过度正数”索引作为基础。这将与其他人一样,除了期望所有指数都是负数。不知道这什么时候会有用。

在所有情况下,都需要负索引(情况 1、情况 3)或负偏移量(情况 2)。据我所知,至少在某种程度上禁止负指数是不允许的。

但也许不是?

最佳答案

displaced := array[offset:]

只是 slice 。

Demo.

关于arrays - 我可以在 Go 中使用 "displaced"数组基数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45362741/

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