首页 技术 正文
技术 2022年11月21日
0 收藏 675 点赞 3,084 浏览 1088 个字

原文地址:

http://www.niu12.com/article/10

####包
所有的.go 文件,除了空行和注释,都应该在第一行声明自己所属的包。
每个包都在一个单独的目录里。 不能把多个包放到同一个目录中,
也不能把同一个包的文件分拆到多个不同目录中。
这意味着,同一个目录下的所有.go 文件必须声明同一个包名。 并不需要所有包的名字都与别的包不同, 因为导入包时是使用全路径的,
所以可以区分同名的不同包 包被导入后会使用你的包名作为默认的名字,
不过这个导入后的名字可以修改。
这个特性在需要导入不同目录的同名包时很有用 import 语句告诉编译器到磁盘的哪里去找想要导入的包
eg:import f1 path1/file
eg:import f2 path2/file import (
f1 path1/file
f2 path2/file
) 一旦编译器找到一个满足 import 语句的包,就停止进一步查找。
有一件重要的事需要记住,编译器会首先查找 Go 的安装目录,
然后才会按顺序查找 GOPATH 变量里列出的目录。 所有导入的包必须被使用,户可能需要导入一个包,但是不需要引用这个包的标识符。
在这种情况,可以使用空白标识符_来重命名这个导入,但是会执行该包的init() main 包:Go 语言的编译程序会试图把这种名字的包编译为二进制可执行文件。
所有用 Go 语言编译的可执行程序都必须有一个名叫 main 的包。 当编译器发现某个包的名字为 main 时,
它一定也会发现名为 main()的函数, 否则不会创建可执行文件。
main()函数是程序的入口,所以,如果没有这个函数,程序就没有办法开始执行。
程序编译时,会使用声明 main 包的代码所在的目录的目录名作为二进制可执行文件的文件名。 最佳实践:
包名的惯例是使用包所在目录的名字,
应该使用简洁、清晰且全小写的名字,这有利于开发时频繁输入包名####init函数
每个包可以包含任意多个init(),这些函数都会在程序执行开始的时候被调用
所有被编译器发现的 init 函数都会安排在 main 函数之前执行。
init()用在设置包、初始化变量或者其他要在程序运行前优先完成的引导工作 不能导入不使用的包,为此使用空白标识符重命名这个导入可以让 init
函数发现并被调度运行,让编译器不会因为包未被使用而产生错误 多个包的init的函数执行顺序与栈执行顺序一致:先进后出,先导后执行####Go命令 go build . 命令会执行编译整个项目
go build fileName 命令会执行编译单个文件 go clean . 删除编译生成的可执行文件 go vet main.go 检测代码的常见错误 go fmt main.go 格式化代码
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,105
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,582
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,429
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,836
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,919