简言
放假闲来无事,学习一下Go语言,很久没用csdn了,来记录一下学习过程,后续看完Go基础后会用Go来做做算法题,有问题欢迎在评论区指正!
一、环境配置
使用的是VScode。
首先在VScode里下载了Go语言的扩展包,这部分直接在Extensions里下载就行。
然后其他的配置问题,参考了b站的一个视频:VSCode下快速配置Go语言开发环境。
其中有些不一样的是,goproxy.io里面已经更新了,我直接更新的最新内容。
二、Go语言基础(一)
1. helloGo结构(参考菜鸟教程-Go语言结构)
package main
import "fmt"
func main() {
fmt.Println("Hello Go!")
}
1.1 定义部分
package main ---- 定义包名
import “fmt” ---- 程序使用fmt包,fmt包实现格式化IO的函数
func main() ---- main函数
fmt.Println(“Hello Go!”) ---- 输出
1.2 执行
[1] 可以使用ctrl+F5直接运行,也可以在任务栏里找到运行,点击非调试运行。
[2] 也可以使用treminal运行:
① go run helloWorld.go
② 生成一个二进制文件来运行:
go build helloWorld.go
.\helloWorld.exe
1.3 ‘{’ 不能单独放一行
2. 基础语法(参考菜鸟教程-Go语言基础语法)
同其他语言,具体可以点击上面链接查看。
比较需要注意的是,Go语言使用fmt.Sprintf或者fmt.Printf
Sprintf 根据格式化参数生成格式化的字符串并返回该字符串
Printf 根据格式化参数生成格式化的字符串并输出
3. 数据类型(参考菜鸟教程-Go语言数据类型)
3.1 布尔型
var b bool = true
3.2 数字类型
支持整型、浮点型数字,支持复数(用补码进行位运算)
3.3 字符串类型
UTF-8
3.4 派生类型
指针类型(Pointer),数组类型,结构化类型(struct),Channel类型,函数类型,切片类型,接口类型(interface),Map类型
3.5 数字类型的具体区分:
<1> byte: uint8
<2> rune: int32
<3> uint
<4> int
<5> uintptr: 无符号整数,存放一个指针
其余具体细节可以点击此部分标题后的链接查看。
4. 变量(参考菜鸟教程-Go语言变量)
声明规则与其他语言一样,未初始化的变量为零值(0,false等)
5. 常量(参考菜鸟教程-Go语言常量)
package main
import "fmt"
func main() {
const a, b, c = 1, false, "string"
fmt.Println(a, b, c)
}
结果:
1 false string
三、注意事项
1. 如果新建项目,需要重新添加go.mod文件,否则将无法进行调试。
需要在terminal里运行如下命令
go mod init xxxx(包名)
2. 对于初学者,需要知道的关于import的事情
Go语言和其他语言在import里不太一样,如果你引用了这个包,却没有使用里面的内容,它会自动在下面标注。但是这个是不会影响运行的,只不过会影响你的观感而已。