golang 包包含的错误。package问题

在golang中package是个困惑的概念, 特别是package还可以与folder不同名, 委实让我恶心了一把.

关于golang的package的最佳实践:

package is folder.

package name is folder name.

package path is folder path.

信耶稣得永生!

1. 同一个folder存在不同package, 编译错误:

D:/go/bin/go.exe build [E:/cgss/src/pkg01]

can't load package: package pkg01: found packages pkg01 (pkg01.go) and pkg012 (pkg02.go) in E:cgsssrcpkg01

在同一个folder存在多个package, 则加载失败. 即使是main, 也一样

D:/go/bin/go.exe build [E:/cgss/src/test]

can't load package: package test: found packages main (cgss.go) and file01 (file01.go) in E:cgsssrc est

2. folder name与package name不同(即package path与package name不同), 则需要使用

"import alias path"语法, 即:

import <package_name> <package_path>

否则编译错误: package name不是合法标识符.

D:/go/bin/go.exe build [E:/cgss/src/test]

can't load package: package test: found packages main (cgss.go) and file01 (file01.go) in E:cgsssrc est

package main import "fmt"import pkg012 "pkg01" func main() { fmt.Println(pkg012.PKG_NAME)}

 

转载地址:https://www.tinymind.net.cn/articles/3f6e2cfcbb0488

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Golang 中,可以通过创建一个共用的 package 来存放多个项目都需要的通用代码。下面是创建共用 package 的步骤: 1. 创建一个新的文件夹,用于存放共用的 package 。 2. 在该文件夹下创建一个名为 `go.mod` 的文件,用于管理 package 的依赖关系。 3. 在该文件夹下创建一个名为 `main.go` 的文件,用于编写共用的代码。 4. 在 `main.go` 中定义需要共用的函数、变量等。 5. 在需要使用该共用 package 的项目中,可以通过 `import` 语句来引用该 package 。 下面是一个示例: 假设我们需要创建一个共用的 package ,用于存放一些常用的字符串处理函数。 1. 创建一个名为 `stringutil` 的文件夹。 2. 在 `stringutil` 文件夹中创建一个名为 `go.mod` 的文件,内容如下: ``` module github.com/yourusername/stringutil ``` 其中,`yourusername` 是你的 GitHub 用户名。 3. 在 `stringutil` 文件夹中创建一个名为 `main.go` 的文件,内容如下: ```go package stringutil import "strings" func ToUpper(s string) string { return strings.ToUpper(s) } func ToLower(s string) string { return strings.ToLower(s) } ``` 其中,我们定义了两个函数 `ToUpper` 和 `ToLower`,分别用于将字符串转换为大写和小写。 4. 在需要使用 `stringutil` 的项目中,可以通过 `import` 语句来引用该 package ,例如: ```go package main import ( "fmt" "github.com/yourusername/stringutil" ) func main() { s := "Hello, World!" fmt.Println(stringutil.ToUpper(s)) } ``` 在上面的示例中,我们使用 `import` 语句来引用 `stringutil` package ,并使用 `stringutil.ToUpper` 函数将字符串转换为大写。 注意:在使用共用 package 时,需要确保该 package 已经被正确地安装和编译。你可以通过运行 `go get` 命令来安装该 package ,并在需要使用该 package 的项目中引用它。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值