这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
1.什么是go语言
1.1go语言的优点
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库
- 完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收
2.入门go语言
2.1基础语法-Hello World
package main //表示这个文件属于main包,一个入口文件
import (
"fmt" //导入标准库当中的fmt包,主要是用来输入输出
)
func main() {
fmt.Println("hello world")
}
2.2基础语法-变量
声明变量总共有两种方式一种是var 变量=value(会自动匹配变量的类型,但是你也可以在变量后面显式的声明变量类型,还有一种是变量: =value,常量就是const 变量(会根据上下文自动匹配响应的类型)
package main
import "fmt"
func main() {
var a = "xiaomao"
var b, c int = 1, 2
var d float64
e := float32(d)
fmt.Println(a, b, c, d, e)
const s string = "xiaomao02"
fmt.Println(s)
}
2.3基础语法-if else
- Go语言当中的if语句后面不需要给条件括号,如果加上,在运行前编辑器也会自动将其去掉
- 在Go语言当中的if语句后面要直接跟上大括号,不可以将语句写在同一行上.
package main
import "fmt"
func main() {
if 8%2 == 0 {
fmt.Println("8 is divisible 2")
}
if num := 9; num < 0 {
fmt.Println(num, "是负数")
} else {
fmt.Println(num, "是正数")
}
}
2.4基础语法-循环
- 在Go语言当中没有while循环,没有do...while循环,只有唯一的一种for循环,可以用break跳出循环或continue继续循环
package main
import "fmt"
func main() {
for {
fmt.Println("xiaomao")
break
}
for j := 1; j < 9; j++ {
fmt.Println(j)
}
for n := 0; n <= 10; n++ {
if n%2 == 0 {
continue
}
fmt.Println(n)
}
}
2.5基础语法-switch
- Go语言中改进了switch的语法设计,case是独立的代码块,不需要通过break跳出当前case语句以此来防止执行下一个case语句。
- Go语言中switch...case可以使用任意的变量类型,例如字符串,结构体等等,甚至可以用来替代if..else语句。
package main
import "fmt"
func main() {
i:=2
switch i {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
case 4,5:
fmt.Println("four or five")
default:
fmt.Println("other")
}
}
2.6基础语法-数组
- 数组就是长度固定的数字序列,对于一个数组,我们可以很方便的去存储,提取索引上的值,不过我们在实际的开发当中,由于长度是固定的,所以我们很少使用,更多的是去使用切片.
package main
import "fmt"
func main() {
var a[5]int
a[4]=100
fmt.Println(a[4],len(a))
b:=[5]int{1,2,3,4,5}
fmt.Println(b)
var twoD [2][3]int
for i:=0;i<2;i++{
for j:=0;j<3;j++{
twoD[i][j]=i+j
}
}
fmt.Println("2d:",twoD)
}
2.7基础语法-切片
-
切片区别于数组,切片是一个长度可变的数组,有着更多丰富的操作,其中内部则包含三个字段:指向底层数组的指针、长度和容量
切片创建的方式有两种;一种是使用make函数来进行创建,还有就是字面量
var slice=make([]int,5,5)
但是在用make函数进行创建的时候,第二个参数必须填,第三个参数可以填或者不填写,则容量默认等于长度值。
var slice=make([]int,5,5)
var slice=make([]int,5)
切片如何增加新元素
//新增一个元素
slice=append(slice,1)
//新增多个元素
slice=append(slice,1,2)
(待补充)