gpt4 book ai didi

go - https ://github. com/Workiva/go-datastructures/tree/master/bitarray 中定义的 's' 在哪里?

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

我没有看到 s 的定义。古鲁不会告诉我。我得到的只是“没有标识符的对象”,但它知道它旁边的 k 。这是链接代码的典型片段:

func getIndexAndRemainder(k uint64) (uint64, uint64) {
return k / s, k % s
}

一个字母的变量名肯定会让 grep 变得更难。我已经寻找了常见的嫌疑人:var s uint64s := ...,什么都没有。显然,它需要是在某处定义的全局值。

这留给我两个问题:

  1. 来自哪里?
  2. 不在这里询问我如何找到它?

编辑:对于偶然发现这一点的其他人。

Guru 使我失败了,因为我没有通过将 git 克隆放在/some/path/src 下并将 GOPATH 设置为/some/path 来在适当的 Go 工作区下检查包的源代码。所以当我想到 GOPATH=. guru definition s 会起作用, GOPATH 被忽略了。 guru 可以找到 k,因为它在文件中,但它不知道如何在其他文件中查找。

我的 grep 失败是因为 const 使用了一个简单的 = 而不是 :=。我会在以后 grep 时记住这一点。

最佳答案

go-datastructures/bitarray/block.go中定义:

// s denotes the size of any element in the block array.
// For a block of uint64, s will be equal to 64
// For a block of uint32, s will be equal to 32
// and so on...
const s = uint64(unsafe.Sizeof(block(0)) * 8)

由于变量 s 没有在函数中定义,也没有以包名或别名为前缀,它必须是 位数组的全局(变量或常量) 包。

一旦知道了这一点,我就遍历了文件夹 go-datastructures/bitarray 中没有以 _test 为后缀的每个文件,并寻找顶级声明对于 s

关于go - https ://github. com/Workiva/go-datastructures/tree/master/bitarray 中定义的 's' 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46181296/

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