初识Go程序开发工具GoModules01.02.目录第一个Go语言程序03.编译与运行04.01开发工具•开发工具定义•GoLand•LitelDE•VSCode•Eclipse•Vim•Emacs1开发工具用于辅助软件生命周期过程的基于计算机的工具,能够很方便地把一种编程语言代码化并编译执行。开发工具用户易操作功能强大很方便修改、扩展覆盖面大可靠性高1开发工具•是Jetbrains针对Go语言所开发的一款商业IDE•GoLand整合了IntelliJ平台•提供了针对Go语言的编码辅助和工具集成•对代码编写、自动补全和运行调试都有极大的帮助•是大多数开发者的首选工具GoLand1开发工具•一款国人所设计开发的Go集成开发环境•一款非常好用的轻量级Go语言集成开发环境•支持跨平台开发•包含了抽象语法树视图的功能•支持在各个Go开发环境之间随意切换•支持交叉编译LitelDE1开发工具•全称是VisualStudioCode•由微软Microsoft所开发的一款免费的开发工具•具有简单、轻快、开放的特点•支持多种语言,默认提供Go语言的语法高亮•在安装Go语言插件之后,还可以支持智能提示、编译运行等诸多实用功能VSCode1开发工具•开放式IDE的鼻祖•是一个开源免费的平台•安装不同的插件即可运行不同的语言•提供了GoEclipse插件Eclipse1开发工具•从vi发展出来的一个Linux平台的文本编辑器•以字体颜色辨别语法的正确性•具有代码补全、编译及错误跳转等功能•是很多程序员在Linux下必备的一款工具Vim1开发工具•一款运行在Linux和Unix系统下的文本编辑器•具有强大的可扩展性•同时也是一个集成开发环境Emacs02GoModules•GoModules的出现•gomod命令2GoModulesgo1.11之前•代码开发必须在gopathsrc目录下,不然在执行过程中会遇到问题。•使用gopath进行管理,极其依赖手动管理,并且依赖包没有版本可言。•后推出govendor解决了包依赖,一个配置文件就管理;但是依赖包全都下载到项目vendor下,导致每个项目都会持有一部分相同文件。go1.11•推出特性gomodules,用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。•Modules是相关Go包的集合,是源代码交换和版本控制的单元。•Modules和传统的GOPATH不同,不需要包含例如src,bin这样的子目录,一个源代码目录甚至是空目录都可以作为Modules,只要其中包含有go.mod文件。gomod相关命令初始化项目•gomodinit+模块名称•项目如果不在GOPATH下,则必须要有go.mod文件,否则运行会报错命令作用gomoddownload下载依赖包到本地(默认为GOPATH/pkg/mod目录)gomodedit编辑go.mod文件gomodgraph打印模块依赖图gomodinit初始化当前文件夹,创建go.mod文件gomodtidy增加缺少的包,删除无用的包gomodvendor将依赖复制到vendor目录下gomodverify校验依赖gomodwhy解释为什么需要依赖2GoModules03第一个Go程序•包的认识•fmt包•main()函数•程序结构3第一个Go程序packagemain//指定其所在的包import“fmt“//导入fmt包funcmain(){//main()函数是程序的入口fmt.Println("不忘初心,牢记使命!")}在Go语言中所有的文件都需要指定其所在的包(package)运行结果为:不忘初心,牢记使命!"包有两种类型main包在代码的开头使用packagemain进行声明非main包在代码的开头使用package+包名进行声明3第一个Go程序•import"fmt"是导入fmt包•fmt包实现了类似C语言printf和scanf的格式化I/O•注意:import导入的是相对路径,而不是包名•Println()是fmt包中的一个函数,用来格式化输出数据3第一个Go程序Go语言程序结构包声明引入包函数变量语句&表达式注释易错点注意“{”不能单独放在一行;否则会在运行时产生“syntaxerror:unexpectedsemicolonornewlinebefore{”的错误。在整个程序中有且仅能有一个main函数;如果出现多个main函数则不能正常运行。04编译与运行•gobuild•gorun4编译与运行•Go语言中使用gobuild命令主要用于编译代码•gobuild命令会将1.2-hello.go文件编译成1.2-hello.exe文件•GoLand的Run‘gobuild1.2-hello.go’操作会运行编译后的1.2-hello.exe文件,在文件运行结束后会自动删除1.2-hello.exe文件•gorun命令也能够编译源码•不会在当前目录留下可执行文件•把编译和执行合为一步完成•本质是:把编译过程隐藏了起来,编译过程依然存在,可执行文件被放在临时文件中被执行4编译与运行谢谢观看