昨天安装了go包和vscode。今天开始我的第一个go节目。
创建项目和文件
在d盘上制作go的项目目录,并将所有go项目放在里面。
目录为:`D:\go_project`图1
图2
4.新建第1个go文件。鼠标移动到项目名称上,会出现几个按钮,点击`新建文件`按钮,在下面的输入框中输入我的第1个go文件名称:`index.go`(go文件一般命名都以`.go`结尾),然后回车,创建完成(如图3)。创建完成,这个文件会自动在右侧编辑区域打开(如图4)。
图3
图4
5.编写代码输入"hello,world"。
查了一下,go语言有一些可以直接使用的内置函数(如`append`,后面会学到),除此之外可以引入包,使用包里面的函数。输入一段文字需要使用名为`fmt`的包。
**包是什么?**
我理解包就是一堆代码的集合,就像女生喜欢的`包`一样,它里面可以放很多乱七八糟的东西,只不过go语言里的包存放的是 `函数`、`结构(类)`,`变量(不知道是否正确,以后再验证)`等。
**有什么作用?**
1.隔离。如果你和我写的文件用了同名的变量或函数,如果没有包就会冲突,编译器可能不知道你用的是哪个,有了包那么使用时就可以使用包名加函数名区分,如包package1和package2下有同名的test函数,使用时()或()进行区分。
2.复用。写代码肯定不希望每次都从头写,复用能提高效率。
**go语言中的规定**
1.任何一个go文件必须属于一个包。
2.同一个目录下的同级的所有go文件应该属于一个包。
3.包的名称可以跟目录不同名,不过建议同名。
4.必须有且只有一个`main`函数,它是go语言的入口函数,也就是程序启动第1个要执行的函数。且main函数必须属于main包。也就是说go语言必须有一个main包。
所以必须知道怎么让一个文件属于一个包?语法如下,其中`xxx`为包名:
package xxx
例如包名为`main`
package main
引入一个包的语法,其中`xxx`为包名:
import "xxx"
例如引入"fmt"包
import "fmt"
我在`index.go`文件中写入的内容如下:
package main
import "fmt"
func main() {
("hello world")
}
因为上一篇文章<<今天想学习一门编程语言>>中安装了`code runner`插件,所以在编辑的`index.go`内容任意处鼠标右键,选择`Run Code`可运行代码,并可在输出面板`OUTPUT`处看到运行结果:
vscode中运行程序
`OUTPUT`输出结果处也会显示运行的命令`go run`(学习go语言使用的第1个命令),其实跟使用命令行是等同效果(如下图),所以`code runner`真的很方便。
`go run`命令会编译源码,并且直接执行源码的 main() 函数,不会在当前目录留下可执行文件。
有用的插件
在编写index.go的时候vscode总提示几个go扩展的命令不可用(如下图),可以点击Install进行安装,但在安装前我需要弄明白这些插件都有什么作用:
安装go的一些包或插件时总失败,因为包或插件地址在国外,所以需要设置一下go的国内代理。这里可以先用`go env`查看go的所有环境配置。其中需要设置的是`GOPROXY`环境变量。命令为:
go env -w GOPROXY=我是国内地址上网随便可搜到,direct
go help env 可以查看go env的用法
1. go env -json: 环境变量以json格式输出。
2. go env -w XXX=xxx: 如上面设置代理,设置属性XXX使用自定义的值xxx代替安装时的默认值。
3. go env -u XXX:删除通过`go env -w`设置的值,还原回默认值。
我猜`默认值`和`go env -w`设置的值分两个文件,使用环境变量时,`go env -w`文件的值会覆盖`默认值`文件的值。`go env -u`只会删除`go env -w`文件的值,所以又会恢复默认值。【待验证】
1.goimports是什么?
goimports是Go官方提供的工具,可以自动对代码中的依赖包进行管理,如果有用到,就会自动`import`,对没有用到的包进行自动删除。并且goimports也具有`gofmt`的功能。
`gofmt`可以格式化go的代码。网上说vscode可以设置保存时自动格式化代码。但我在`swith fron gofmt to goimports`之前的操作都没有成功:
如果vscode没有提示安装`goimports`,也可以手动安装。打开命令行,直接输入安装命令:
go get -v 我是go官网地名/x/tools/cmd/goimports
因为修改了`GOPROXY`很快就安装成功,重启vscode,之前写的代码再保存一下,自动格式化了。
2.gopls是什么?
gopls可以实现代码自动完成,转到定义,查找所有引用等功能。它是 LSP(全称 Language Server Protocol,即语言服务器协议) 的一个语言端(Server)实现,是针对 Go 语言的 LSP 实现。有兴趣可自行了解。
gopls的安装可以通过提示点击Install进行安装,也可以使用上面安装goimports的方式手动安装(安装命令:`go install -v 我是go官网地名/x/tools/gopls@latest`),这里再学习一种新的vscode安装插件的安装方式。
(1)ctrl+shift+P 打开 执行命令的输入框,输入go:install 就可以看到`Go:Install/Update Tools`(如图),选择它自动跳转后,可以看到go的工具列表。
图5
(2)选择gopls,点击OK进行安装
图6
(3)OUTPUT处会显示安装成功
3.go-outline是什么?
go-outline可以解析结构体tag标签里面的json信息。以后会学习到的,先安装再说。
总结
- 任何一个go文件必须属于一个包。
- go必须有一个main包。
- go必须有且只有一个main函数,且它属于main包,是go语言的入口函数。
- 包的名称可以跟目录的名称不同名,建议同名,自己好找到文件。
- 文件包名语法`package xxx`,并且必须在文件除注释外第1行。
- 引入包语法`import "xxx"`,以后还会学到1个Import引入多个的包的语法。
- go env 查看所有go的环境变量。
- go env -w 设置环境变量。
- go env -u 删除通过go env -w设置的环境变量,还原成安装时的默认值。
- 要设置`go env -w GOPROXY`后才能顺利下载go包和工具。
- goimports可在保存文件时自动格式化,自动`import`,对没有用到的包进行自动删除。
- gopls实现代码自动完成,转到定义,查找所有引用等功能。
- go-outline可以解析结构体tag标签里面的json信息。
1.《关于环境2.0怎么安装程序,你需要知道这些2.第1个go程序》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《关于环境2.0怎么安装程序,你需要知道这些2.第1个go程序》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3072851.html