golang基础-生成_拷贝exe文件、多包管理、init函数及其执行顺序
来源:互联网 发布:java 日期转换工具类 编辑:程序博客网 时间:2024/06/07 19:30
下载安装
参考我这篇博客
链接博客用的golang官网的LiteIDE编辑器,可以了解下golang开发的配置环境,那么接下来的学习用了,VSCode编辑器,里面可以安装各种调试、格式化的插件,很方便
go语言中文网
第一个go小程序
右键hello.go打开doc命令行(VSCode可以go get github.com/derekparker/delve/cmd/dlv进行安装调试插件),我这里安装有问题,就暂时利用doc窗口来调试学习,输入go run hello.go即可看到运行结果,也可以执行E:\golang\go_pro\safly_src\day01\hello.go绝对路径
以上就是一个简单的go小程序
生成可执行.exe文件
我们继续执行go build hello.go在doc窗口中,会生成一个可执行的.exe文件
结果如下图,生成一个hello.exe可执行文件,这是是在day01目录下生成的。
拷贝.exe文件
我们继续在项目中,创建一个bin文件夹,将go的可执行文件统一存放,上图已经创建好了,接下来我们执行go命令,将其拷贝到bin目录下即可
以上的截图是错误的,我们发现go默认有一个src,所以我们改下目录结构,修改后的目录结构如下:
以上截图是在day01下面创建了一个bin目录,然后拷贝了hello.exe到此文件夹
以上的截图是在项目的根目录下拷贝了hello.exe到bin文件夹内
多包管理
以上的demo仅仅是一个包,接下来我们了解下多包的管理
我们创建一个pck文件夹,然后创建一个简单的add.go,求2个数的和
在main.go文件中,如果使用add.go方法,需要导入pck模块下的”safly_src/pck”
然后直接pck.Add进行调用
最后在控制台进行输出即可
init函数
每个源文件都可以包含一个init函数,这个init函数自动被go运行框架调用。
我们看下如下代码示例:
package mainimport("fmt")var a int var str string /*如下写法是错误的,在全局变量只能初始化,或者初始化并赋值c:=0是一个执行语句了,需要在执行期间进行赋值,不能在编译期间进行赋值*/// c:=0 var c intvar d int func init(){ fmt.Println("demo init") d = 10}func main(){ fmt.Println("a=",a) a = 0 fmt.Printf("a=%d\n",a) fmt.Println("a=",str) str = "aaa" fmt.Println("a=",str) println("c=",c) c:=8 fmt.Println("c=",c) //init中为d进行赋值操作 println("d=",d)}
输出如下:
demo inita= 0a=0a=a= aaac= 0c= 8d= 10
如下写法是错误的,在全局变量只能初始化,或者初始化并赋值
c:=0是一个执行语句了,需要在执行期间进行赋值,不能在编译期间进行赋值
多包引用init执行顺序
接下来我们多增加几个.go文件,进行互相调用看下运行结果
以下是test2.go声明了一个init函数
以下test1.go声明了一个init函数,然后引入了pck2包下的test2.go,还定义了2个变量,在头部 _ “pck2” 如果不使用test2.go里面的数据,需要前面加_
包的只初始化,不引用
看运行结果
pck2.go initpck1.go initdemo initd= 10wyf9
- golang基础-生成_拷贝exe文件、多包管理、init函数及其执行顺序
- QT 生成EXE执行文件
- 基础_多线程文件拷贝
- golang 包中的init调用
- golang入门-- import包与包内init方法的执行时机
- linux init执行顺序
- 将java项目打包成jar包并生成可独立执行的exe文件
- Unity5脚本事件函数及其执行顺序
- Unity5脚本事件函数及其执行顺序
- golang 文件拷贝
- java项目生成exe执行文件
- golang基础-数组、切片创建_内存_底层实现_修改值_拷贝_循环、string与切片
- android5.1 init对rc文件解析执行顺序
- android5.1 init对rc文件解析执行顺序
- android5.1 init对rc文件解析执行顺序
- golang init和main函数
- init/initWithFrame/自定义init方法执行顺序
- Android init.rc执行顺序
- 面向对象:我始终想追随内心,生活和恋爱 (今天这位是程序员妹子)
- 趣图:不同人眼中的程序员
- 碉堡了!最大 18 禁网站用 AI 和 ML 来做视频分类加标签
- 设计模式精髓篇之结构型
- 配置Linux之间ssh免密登录
- golang基础-生成_拷贝exe文件、多包管理、init函数及其执行顺序
- 关于字符串的几个经典函数和gets函数的注意点 补充的分割字符串,查找字符串,拷贝部分,连接部分
- 【c++】i++和++i的区别
- pycharm 过期解决办法
- org.apache.jasper.JasperException Unterminated [<c:forEach] tag 错误的解决办法
- iOS中的字典值为nil的崩溃处理
- 菜鸟打响排序算法第一枪(冒泡,选择,插入)
- bs4的使用
- knn算法的部分处理操作