为了账号安全,请及时绑定邮箱和手机立即绑定

Golang - 双下划线形式的包名

Golang - 双下划线形式的包名

Go
桃花长相依 2023-03-21 10:28:54
在我的 protobuf 生成的代码中,包是:package __什么意思double underscore,是不是和文件夹名一样?有没有这方面的文件,我搜索了但没有找到。并且代码可以无错编译。
查看完整描述

2 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

是的,这意味着相同的目录。让我们看看下面的代码。


目录结构

.

├── go.mod

├── greet

│   └── greet.go

└── main.go

内容在greet.go

package __


import "fmt"


func Hello(name string) {

    fmt.Printf("Hello %s\n", name)

}

内容在main.go

package main


import greet "playground/greet"


func main() {

    greet.Hello("Eric")

}

当前目录

$ pwd

/Users/thedatageek/Codes/go-playground

不幸的是,我也找不到任何文档。


不过好像是个好东西。您真的不需要为包命名。您只需命名目录,包名称将自动相同。


注意:这绝对不是grpcorprotobuf东西。然而,如果您已经从原型文件生成了原型存根,并且如果您添加了一些额外的实用程序文件,您可以将它们放入一个目录中,然后通过目录名直接导入它,这是一种习惯。例如下面的 github repos


https://github.com/Ash110/gRPC-Logger https://github.com/dist1ll/cache-prototype https://github.com/kamensotirov99/int-gateway https://github.com/rachaelyychen/go-gee https://github.com/suvvm/ToadOCREngine https://github.com/denyami/drawing-api


查看完整回答
反对 回复 2023-03-21
?
SMILET

TA贡献1796条经验 获得超4个赞

我发现了什么package __ (双下划线)

  • 导入此类包时,必须指定别名,不能省略,否则找不到包。

  • 导入时,编辑器(如goland)无法自动搜索,必须手动导入。

所以,我猜__是指no nameor no default name


查看完整回答
反对 回复 2023-03-21
  • 2 回答
  • 0 关注
  • 150 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信