这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记
一、hello world的写法
package main
import(
"fmt"
)
func main(){
fmt.Println("hello world")
}
- 输出语句的写法:通过调用标准库中的fmt包中的Println函数来输出
二、变量与常量的定义与声明
(一)变量
- 通过
var name (变量类型) = value来定义,其中name与value可以是多个值(一一对应并用逗号分隔) - 通过
name := value来定义,其中value可以是强制转化类型表达式,例如f := float32(e)
(二)常量
- 只需要将变量中的关键字
var变成const - go语言中的常量没有确定的类型,会根据上下文来自动确定类型
三、分支语句结构
(一)if-else结构
package main
import "fmt"
func main() {
if 7%2 == 0{
fmt.Println("7 is even")
}else{
fmt.Println("7 is odd")
}
}
- if结构
- if-else结构
- if-else if-else结构 值得注意的是,if后面的表达式没有小括号,并且无论后面的语句是否是多条,都需要加大括号
(二)switch-case语句
package main
import{
"fmt"
"time"
}
func main() {
a := 2
switch a {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3,4:
fmt.Println("three or four")
default:
fmt.Println("other")
}
b := time.Now()
switch {
case t.Hour() == 1:
fmt.Println("one")
case t.Hour() == 2:
fmt.Println("two")
case t.Hour() == 3 || t.Hour() == 4:
fmt.Println("three or four")
default:
fmt.Println("other")
}
}
- 条件表达式既可以紧跟着switch处写,同时也可以在case处写
- 当条件写到case语句处时,与if-else语句形成等价替换
四、循环语句结构
package main
import "fmt"
func main() {
i := 1
for j := 7;j < 9;j ++{
fmt.Println(j)
}
}
- 只有这一种类型的循环,即没有while/do-while循环
- 注意for后面无小括号
五、数组与切片
(一)数组:长度固定的
- 一维定长数组声明
var a[5]int - 一维定长数组声明并赋值
a := [5]int{1,2,3,4,5} - 二维定长数组声明
var twoD [2][3]int
(二)切片:长度可变的
- 采用make声明一个切片
s := make([]string,3) - 采用append来添加元素
s = append(s,"d")
六、哈希map
- 采用make声明一个空map,并确定key-value数据类型
m := make(map[string]int) - 删除特定元素
delete(hashmap,key) - 哈希表元素遍历
for k,v := range m{...}