这是我参与「第五届青训营 」伴学笔记创作活动的第 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 支持 if,else if,else 进行流程控制,其与C语言不同的是,if后的()可以省略;重要的是,与C不同的是其不可以省略大括号{},并且大括号{必须在与if的同一行
if true {
fmt.Println("true")
} else {
fmt.Println("false")
}
循环语句
在 Go 语言中同样有for做为循环控制语句,但是与Java不同的是其不支持while,do 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