问题标签 [go-packages]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 从单独的包/文件夹导入代码
我有这个目录布局:
biz.go 看起来像这样:
和 foo.go 看起来像这样:
目前这无法编译,因为Foodd
无法识别。如何将baba
包导入foo.go
?
我假设如果我这样编译,它将引入正确的文件:
还是我需要在go build
命令中包含 baba 包中的文件?(我希望不会)。
go - os.Read() 是怎么工作的?戈朗
为什么如果我 print bs
,在调用之前Read()
,它什么也不打印,但是在调用之后file.Read(bs)
,它显示了 test.txt 文件的内部。除非bs
只是论据,怎么Read()
可能改变呢?
输出:
go - 使用 Go 模块时如何签入包?
我们目前govendor
用于管理我们go
存储库中的包。由于我们使用了很多包,我们决定将包源代码签入vendor
文件夹,以便:
- 每次需要在构建机器中构建存储库时,节省下载所有包的时间。
- 避免一个包在网上不可用(被删除、网络问题等)的可能性
我有兴趣modules
使用v1.11
. 但是,我似乎找不到类似的方法来检查包,而不必下载所有包。
有任何想法吗?
go - 找不到嵌套包
我有一个具有以下结构的项目:
将 $GOPATH 设置/home/dev/dev/go
为此是如何server.go
命名它的包和导入:
这是services.go
:
这是exch.go
:
现在,server.go
进口package services
正常,但services.go
找不到package exch
. 我尝试以多种方式更改导入路径,但无法使其正常工作。我错过了什么吗?
知道 /myapp 位于此处可能很有用:/home/dev/dev/go/src
go - 使用 Go 模块在包中组织本地代码
main.go
在$GOPATH
. _
我没有导入任何需要包含的外部依赖go.mod
项,我只是想在本地组织这个 Go 模块的源代码。
文件main.go
:
该文件./stuff/bar.go
(假装是本地包):
文件go.mod
(命令go mod init foo
):
执行时go run main.go
:
- 如果我
import "./stuff"
,那么我看到了build command-line-arguments: cannot find module for path _/home/<PATH_TO>/fooprj/stuff
。 - 如果我
import "stuff"
,那么我看到了build command-line-arguments: cannot load stuff: cannot find module providing package stuff
。 - 如果我
import stuff "./stuff"
使用包别名,那么我会再次看到:build command-line-arguments: cannot find module for path _/home/<PATH_TO>/fooprj/stuff
.
我找不到使本地包与 go 模块一起使用的方法。
- 上面的代码有什么问题?
- 如何将本地包导入到使用 Go 模块(文件
go.mod
)定义的项目中的其他 Go 代码中?
go - 从包导入路径获取包源的完整路径
目前我有一个像str := "github.com/pkg/errors"
. 我需要包的完整路径。
目前我如何实现这一点是通过使用build.Default.GOPATH+"/src/"+str
.
是否有一种本地非 hacky 方法来解析导入的完整路径(可能在vendor
文件夹等中......)。
go - 我可以列出所有标准的 Go 包吗?
Go 中有没有办法列出所有标准/内置包(即,随 Go 安装一起安装的包)?
我有一个包列表,我想弄清楚哪些包是标准的。
go - Vgo build 触发“未知指令:go”?
任何 vgo 命令在解析 go.mod 文件时都会显示相同的错误。
unknown directive: go
这是我的 go.mod 文件:
我正在使用 go1.13beta1
版本。
go - 有没有更简单的方法来更新本地 Go 包
我正在使用导入到不同项目中的多个包,这些包包括用于我的业务逻辑的自定义适配器,这些适配器由 lambda 和谷歌云函数以及其他公共包共享。我现在这样做的方式是供应它们并将它们包含在云功能中。对于可以在 VM 上编译和部署的应用程序,我将它们分别编译。这对我来说很好,但是,开发这些模块很痛苦。
如果我更新包中的方法签名和名称,我必须将我的更改推送到 github/gitlab(我的包路径类似于 gitlab.com/groupName/projectName/pkg/packageName),然后执行go get -u <pacakgeName>
更新包。
这也并没有真正更新它,有时会被旧版本卡住,不知道如何更新它。我想知道有没有更简单的方法来处理这个问题。
为了清楚起见:
导出的包1路径:gitlab.com/some/name/group/pkg/clients/psql
应用1使用psql-client 路径:gitlab.com/some/name/app1
应用 2 使用 psql-client 路径:gitlab.com/some/name/app2