这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
关于go语言
go语言是一门较新的语言,有着许多的优点,高性能,高并发,有着丰富的标准库,编译速度快,并且解决了python复杂的包的问题。许多大厂也在使用go语言。
基本语法
HelloWorld
package main
import {
"fmt"
}
func main() {
fmt.Println("Hello World!")
}
package main表示这个文件是main包的一部分
main包是程序的入口包
fmt是go标准库的一个基础包,类似于C的stdio.h
变量
go是一门强类型语言,包括整型,浮点型等,与C++不同的是,字符串是go的内置类型,可以直接通过加号拼接。
go语言定义变量有两种方式
var n = 1
n := 1
常量定义方式是把var换成const
定义时go语言会根据上下文来自动确定类型
判断语句
写法与C/C++类似,不同的是判断内容没有括号,且执行部分必须有大括号。
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
循环语句
go里面只有for循环,判断条件可以不写,代表死循环,也可以写成C语言中while循环或者for循环的形式。
package main
import "fmt"
func main() {
i := 1
for {
fmt.Println("loop")
break
}
for j := 7; j < 9; j++ {
fmt.Println(j)
}
for n := 0; n < 5; n++ {
if n%2 == 0 {
continue
}
fmt.Println(n)
}
for i <= 3 {
fmt.Println(i)
i = i + 1
}
}
switch
go语言的switch语句不需要写break语句,并且可以使用任意的变量类型。
数组
数组定义方式
var a [5]int
b := [5]int{1,2,3,4,5}
通常很少用数组,因为长度是固定的,更多使用的是切片
切片
func main() {
s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
s = append(s, "d");
s = append(s, "e", "f")
}
切片可以用make来创建,参数为切片元素类型,初始个数。
使用append来添加元素。
使用append需要将结果赋值给原数组。
map
用法
func main() {
m := make(map[string]int)
m["one"] = 1
m["two"] = 2
fmt.Println(m) // map[one:1 two:2]
r, ok := m["unknow"]
fmt.Println(r, ok) // 0 false
delete(m, "one")
}
使用make来创建map
使用时与其他语言类似
可以定义两个值来获取map中的值,其中第二个可以获得返回结果。
整体上来说go语言跟python和C++都有一些关联,同时有着C++的准确度,也有着python的便捷。期待后面的学习。