Go 采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做 Go 语言开发,这里推荐使用 VS Code 和 Goland。
VS Code 是微软开源的编辑器,而 Goland 是 jetbrains 出品的付费IDE。GoLand 开发工具时收费的,免费试用1个月,到期后可以尝试卸载再重装,目前该工具没有特别好的破解教程。我们这里使用VS Code 加插件做为 Go 语言的开发工具。
VsCode 的安装及中文汉化不在详细介绍,有需要的小伙伴参考其他文章,我们直接打开 VS Code 在扩展中搜索 GO,如下图:
点击安装,然后重启 VsCode
1、先创建一个新的文件夹,例如:go_demo 用于存储我们学习过程中的 Go 项目,然后在 go_demo 目录下创建我们第一个 Go 程序 HelloWorld 文件夹,最后通过 VSCode 打开此文件夹,如下图
2、使用go module模式新建项目时,我们需要通过go mod init 项目名命令对项目进行初始化。
# 项目初始化
go mod init HelloWorld
该命令会在项目根目录下生成go.mod文件。如下图
3、新建一个Go文件, VSCode会激活Go插件,提示的工具全部安装就行了,如下图:
如果此时VSCode右下角弹出提示让你安装插件,务必点 install all 进行安装。等待安装完成,我们的VSCode就可以正常使用了。
// 声明 main 包,表明当前是一个可执行程序
package main
// 导入内置 fmt 包
import "fmt"
// main函数,是程序执行的入口
func main(){
// 在终端打印 Hello World
fmt.Println("Hello World")
}
然后继续在终端中手动执行go文件,输入指令go run 文件名,如下图:
在终端中手编译 go 文件,输入指令 go build 文件名
# 启动运行命令
go run csdn.go
# 编译打包命令
go build csdn.go
# 可以以使用 -o 参数来指定编译后得到的可执行文件的名字。
go build -o csdn_vip
自动推导类型,在声明赋值变量时,不需要 var 和变量类型,其类型是由所赋值来决定的。
基本语法格式:“变量名 := 值”。
多重赋值语法格式:“变量名1,变量名2,变量名3 := 值1,值2,值3"
// 声明 main 包,表明当前是一个可执行程序
package main
// 导入内置 fmt 包
import "fmt"
// main函数,是程序执行的入口
func main() {
// 第一种写法
var a int // 声明变量
a = 1 // 变量赋值
// 第二种写法
var b int = 1 // 变量的初始化,声明变量并赋值
// 第三种写法,Go 语言常用写法
c := 1 // 自动推导类型,必须初始化,通过初始化的值确定类型
// %v 值的默认格式表示
// %+v 类似%v,但输出结构体时会添加字段名
// %#v 值的Go语法表示
// %T 值的类型的Go语法表示
// %% 百分号
// 在终端打印 a
fmt.Printf("a 的数据类型是:%T,值:%v\n", a, a)
// 在终端打印 b
fmt.Printf("b 的数据类型是:%T,值:%v\n", b, b)
// 在终端打印 c
fmt.Printf("c 的数据类型是:%T,值:%v\n", c, c)
}
代码运行结果:
a 的数据类型是:int,值:1
b 的数据类型是:int,值:1
c 的数据类型是:int,值:1
在编码过程中,可能会遇到没有名称的变量、类型或方法。虽然这不是必须的,但有时候这样做可以极大地增强代码的灵活性,这些变量被统称为匿名变量。
匿名变量的特点是一个下画线“”,“”本身就是一个特殊的标识符,被称为空白标识符。它可以像其他标识符那样用于变量的声明或赋值(任何类型都可以赋值给它),但任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用这个标识符作为变量对其它变量进行赋值或运算。使用匿名变量时,只需要在变量声明的地方使用下画线替换即可。例如:
// 声明 main 包,表明当前是一个可执行程序
package main
import "fmt"
// 导入内置 fmt 包
// main函数,是程序执行的入口
func main() {
// 第一种方法
a, b := GetData()
// 在终端打印 a 和 b
fmt.Printf("a 的数据类型是:%T,值:%v;b 的数据类型是:%T,值:%v\n", a, a, b, b)
// 第二种写法,只需要第一个返回值,把第二个返回值定义为匿名变量
c, _ := GetData()
// 第二种写法,只需要第二个返回值,把第一个返回值定义为匿名变量
_, d := GetData()
// 在终端打印 c 和 d
fmt.Printf("c 的数据类型是:%T,值:%v;d 的数据类型是:%T,值:%v\n", c, c, d, d)
}
// 定义一个函数,第一个返回整型值,第二个返回字符
func GetData() (int, string) {
return 2022, "Hello World"
}
代码运行结果:
a 的数据类型是:int,值:2022;b 的数据类型是:string,值:Hello World
c 的数据类型是:int,值:2022;d 的数据类型是:string,值:Hello World
本文教程到此结束,小伙伴们可以愉快的开启编程之旅。