Go基础语法|青训营笔记

426 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

前言

本篇文章从Go语言的基础语法进行总结,是一篇总结知识性质的笔记。

Go语言入门

Go语言的优势

Go 是一门由 Google 主导开发的语言,他的优势如下: 1、学习曲线容易;2、开发效率和运行效率高;3、自由高效;4、拥有强大的标准库;5、部署方便;6、高度支持并发性;7、稳定性高

选择适合的开发工具

要学习Go离不开方便的开发工具,目前主流的开发工具有两种,一种为VSCode其自由度更高,另一种为GoLand,由于GoLand更为便捷,个人推荐使用。

基础语法

Hello World

对于学习过不止一门语言的新手来说,Hello World往往为第一课。

package main
​
import (
    "fmt"
)
​
func main(){
    fmt.Println("hello world")
}

在如上的main函数中可以看出,在 Go 语言中,;不是必要的,如果加上的话,编译器运行时也会自动删除。在Go中换行往往就意味着自动添加了;所以换行的位置很重要,例如a+b如果换行,则应在+换行,而不应该在a后。个人感觉Go语言更像C语言,并简化了不少格式会在下面列出。

变量

Go 变量类型会自动推断,也就是说,当我们为一个变量进行初始化时,其类型可以省略的:

var flag = false

Go语言中的变量是类型后置的,你可以这样创建一个类型为int的变量,它与大多数语言一样,同样允许在同一行声明多个变量:

var a int = 1
var d,b int = 1, 2

可以通过 := 符号以一种比严格定义更加简单的方式进行定义一个变量

a := 12 //等价于var a int = 12

Go与其他语言相似,可以用const来定义一个常量(不可变)

const a string = "你好"

程序流程控制

控制语句

Go 支持 ifelse ifelse 进行流程控制,其与C语言不同的是,if后的()可以省略;重要的是,与C不同的是其不可以省略大括号{},并且大括号{必须在与if的同一行

if true { 
    fmt.Println("true")
} else { 
    fmt.Println("false")
}

循环语句

在 Go 语言中同样有for做为循环控制语句,但是与Java不同的是其不支持whiledo while,这是由于Go不区分 for 和 while,你可以通过这样的方式创建一个最普遍的 for 语句:

for i :=0; i < 5; i++ {
    fmt.Println(i)
}

又或者,不为 for 语句填写任何判断条件,你将得到一个死循环,除非使用 break 关键字跳出循环,当然,Go同样支持 break 和 continue 关键字,其用法与其他语言相同。

for i :=0; ; i++ {
    fmt.Println(i)
}

当然,我们也可以使用 for range 循环的方式来遍历一个数组,并且我们将得到该数组的索引idx和对应值num

nums := []int{1, 2}
sum := 0
for idx, num := range nums {
    fmt.Println("index:", idx)
    sum += num
}
fmt.Println("sum:", sum)
///结果如下:
// index: 0
// index: 1
// sum: 3