gpt4 book ai didi

Go语言: Using package name inside package scope (for Examples)

转载 作者:IT王子 更新时间:2023-10-29 01:43:05 25 4
gpt4 key购买 nike

我目前正在我的 Go 测试脚本中编写 ExampleFuncs。例如:

package hello

import "testing"

func ExampleGetSymbol() {
data := GetSymbol("AAPL")
fmt.Println(len(data.Data))
// Output: 21
}

现在,这给了我两个好处:

  1. 这个例子是在我运行go test
  2. 时执行的
  3. 它出现在 func GetSymbol 下的 godoc 文档中

有一件事困扰着我,我想知道我是否应该做些什么。对于试图从此示例中学习的用户,行

data := GetSymbol("AAPL")

实际上应该是

data := hello.GetSymbol("AAPL")

但由于测试与包在同一范围内,我不能这样使用它。

所以我想我的问题的提炼版本是:
有没有办法在包范围内允许使用 package.field 符号?

提前致谢

最佳答案

不要把它放在 hello 包中,而是把它放在 hello_test 包中。您可以在同一目录中同时拥有 hellohello_test 包,并且它允许(要求)您按照您建议的方式创建示例。

顺便说一句,这也会导致您只将测试用例(至少对于此文件)写入公共(public) API。这通常是一件好事。但是,如果您需要写入私有(private)函数,则可以将测试拆分为单独的文件,一些在 hello 包中,一些在 hello_test 中。

顺便说一句,这方面的文档被稍微隐藏了。您可以在 go cmd documentation 的“测试包”部分找到它。 .

关于Go语言: Using package name inside package scope (for Examples),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26267359/

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