9.5 自定义包和可见性 go mod
the-way-to-go_ZH_CN/09.5.md at master · Unknwon/the-way-to-go_ZH_CN https://github.com/Unknwon/the-way-to-go_ZH_CN/blob/master/eBook/09.5.md

package main
import (
"./pack1"
"fmt"
)
func main() {
fmt.Println(pack1.Pack1Int)
s := pack1.ReturnStr()
fmt.Print(s)
}
主程序利用的包必须在主程序编写之前被编译。主程序中每个 pack1 项目都要通过包名来使用:pack1.Item。具体使用方法请参见示例 4.6 和 4.7。
因此,按照惯例,子目录和包之间有着密切的联系:为了区分,不同包存放在不同的目录下,每个包(所有属于这个包中的 go 文件)都存放在和包名相同的子目录下:
Import with . :
import . "./pack1"
当使用.来做为包的别名时,你可以不通过包名来使用其中的项目。例如:test := ReturnStr()。
在当前的命名空间导入 pack1 包,一般是为了具有更好的测试效果。
Import with _ :
import _ "./pack1/pack1"
pack1包只导入其副作用,也就是说,只执行它的init函数并初始化其中的全局变量。
GO 导入自定义包 - 简书 https://www.jianshu.com/p/4fba6ce388b2
Go -- 多个go文件包名都是main - ma_fighting - 博客园 https://www.cnblogs.com/mafeng/p/6871753.html
shawn@a:~/gokit/microKit$ cat m.go
// 2020/9/18 10:31 Shawn
package main
import (
"fmt"
_ "LG/p0"
)
func main() {
fmt.Println("main")
}
shawn@a:~/gokit/microKit$ cat p0/p0.go
// 2020/9/18 10:44 Shawn
package p0
import "fmt"
// 插件注册
func init() {
fmt.Println("p0")
}
shawn@a:~/gokit/microKit$ cat p0/t.go
// 2020/9/18 10:44 Shawn
package p0
import "fmt"
// 插件注册
func init() {
fmt.Println("p0-t")
}
shawn@a:~/gokit/microKit$
shawn@a:~/gokit/microKit$ go run *.go
p0
p0-t
main-dir-0
main
shawn@a:~/gokit/microKit$ tree
├── go.mod
├── m1.go
├── m.go
└── p0
├── p0.go
└── t.go
1 directory, 5 files
shawn@a:~/gokit/microKit$ cat m1.go
// 2020/9/18 11:39 Shawn
package main
import "fmt"
func init() {
fmt.Println("main-dir-0")
}
func F() {
fmt.Println("main-dir-0-F")
}
shawn@a:~/gokit/microKit$ cat m.go
// 2020/9/18 10:31 Shawn
package main
import (
"fmt"
_ "LG/p0"
)
func main() {
fmt.Println("main")
// F()
}
shawn@a:~/gokit/microKit$
├── go.mod
├── m1.go
├── m.go
└── p0
├── p0.go
└── t.go
9.5 自定义包和可见性 go mod的更多相关文章
- 关于iOS和android自定义包的名字
自定义包名的使用,android的包名和ios的包名都是你的自定义包名!如下以新浪微博SDK自定义包名示例:(官方没的,自己踩过坑,方便后来人吧) 相关技术文档:http://www.apicloud ...
- Go 自定义包引入报错
配置文件 GO111MODULE=on 设置为on时,go命令行会使用modules,而一点也不会去GOPATH目录下查找.但自定义包在 $GOPATH/github.com/winyh/strrev ...
- Python 调用自定义包
创建包 # mkdir -p /python/utils # touch /python/utils/__init__.py # vi /python/utils/Log.pyimport timed ...
- Golang自定义包导入
# 文件Tree project -/bin -/pkg -/src -main.go -/test -test1.go -test2.go main.go package main import ( ...
- go语言基础之包和自定义包与main包
1.包 所有 Go 语言的程序都会组织成若干组文件,每组文件被称为一个包.这样每个包的代码都可以作为很小的复用单元,被其他项目引用. 一个包的源代码保存在一个或多个以.go为文件后缀名的源文件中,通常 ...
- Phyton自定义包导入。
说明:同一个项目下的自定义包. 项目层次: 1:先建好项目Pybasestudty 2:建Python package,包名:pytestpk,__init__.py是建包时自动产生的文件. 3:在该 ...
- Go 使用自定义包(package)
自定义包的分为两种: 1.同目录下的包: 2.不同目录下的包: *经测试,同目录下是不可以用不同包的文件的 同目录下的包: 不同文件中的变量和函数都可以直接访问 不同目录下的包: 1.把要在自定义包外 ...
- python-sys模块、导入自定义包
import问题:https://zhuanlan.zhihu.com/p/69099185 一.sys模块 sys模块是python自带模块,包含了与Python解释器和它的环境有关的函数.利用 i ...
- Java 控制台执行带自定义包定义的类,出现“Exception in thread "main" java.lang.NoClassDefFoundError: ConnectSQLServer (wrong name: sine/ConnectSQLServer)”
1.先说明一下代码实现:自定义package sine, 源代码保存路径为:E:\JSP\HibernateDemo\HibernateDemoProject\src\sine\ConnectSQLS ...
随机推荐
- windows使用git bash 无法交互键盘上下键移动选择选项的解决方法
目录 遇到的问题 解决方案 1. 直接通过数字键来选择 2. 使用 winpty 来启动命令 3. 将 git bash 换成 cmd 4. 使用vscode中是bash 遇到的问题 windows使 ...
- 深入浅出 Git
开篇 你可能遇到过 如果你遇到这个场景,那你可能需要版本控制. 什么是版本控制 版本控制最主要的功能就是追踪文件的变更.它将什么时候.什么人更改了文件的什么内容等信息忠实地了已录下来.每一次文件的改变 ...
- 关于线程池(ThreadPoolExecutor)参数的浅析
引子 线程池在项目中很常用,需要多个任务异步执行的地方我们都会去创建一个线程池. 我们看到 ThreadPoolExecutor源码中提供了更方便的工厂方法(Executors)使用. 提供方便应该是 ...
- 关于GDPR,你需要了解的的5件事
GDPR要求组织确保对用户数据进行良好的保护,而不是滥用,使用户获得知情同意,并且违规行为将受到巨额罚款. 欧盟通用数据保护条例(GDPR)于2018年5月25日开始执行.然而直到如今,还是有不少人对 ...
- active mq 简单配置
---恢复内容开始--- 在activemq.xml 配置activemq的响应配置: 配置消息持久化: <persistenceAdapter> <!-- ...
- easyui字典js 切换 jsp页面显示的内容
在列表中直接切换 formatter: function (value) {var name;if(value==0){name='待审批'}else if(value==1){name='通过'}e ...
- 解析STM32的库函数
意法半导体在推出STM32微控制器之初,也同时提供了一套完整细致的固件开发包,里面包含了在STM32开发过程中所涉及到的所有底层操作.通过在程序开发中引入这样的固件开发包,可以使开发人员从复杂冗余的底 ...
- Lambda 表达式实例
public class Java8Tester {/*** 语法 lambda 表达式的语法格式如下: (parameters) -> expression 或 (parameters) -& ...
- sqlite嵌入式数据库简介及特性
p.p1 { margin: 0; font: 12px "Helvetica Neue"; color: rgba(69, 69, 69, 1) } p.p2 { margin: ...
- Spring Cloud Sleuth链路监控应用(十四)
https://docs.spring.io/spring-cloud-sleuth/docs/2.2.5.RELEASE/reference/html/ 一.Sleuth介绍 为什么要使用微服务 ...