Go语言基础语法和入门
1.Go语言的基本结构:
见如下一个基础的go语言代码
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
我们可以看到有三个基础的块
1.包声明
以package声明该文件所属包,此处为main
2.导入包
使用import进行导入需要使用的包
3.函数
关键部分,使用func进行定义并确定详细名字。main函数为主要程序入口。
2.基本Go语言数据类型
- 基本数据类型:整型:int8 int16 int32 int64 uint uint8 uint32 uint64 字符串型:string(使用UTF-8编码) 布尔型 浮点型:float32 float64 复数:complex32 complex64
- 聚合类型:数组:固定长度的序列 结构体:不同字段的集合
- 引用类型:指针 切片(动态可变数组) 映射map(字典) 函数
3.命名
类型跟在变量名之后并且可以多个一起命名:x int,y int =x,yint
or:使用var进行命名变量 var c,python,java bool (var可以出现在包或函数层级)
or:使用短变量命名 :=
注意! 函数外的每个语句必须以关键字开始,因此 短变量命名只能用在函数内部
4.Go语言的循环和判断语句
- if-else语句:类似C、C++;判断语句后不需要括号,但是后面的内容必须要包含在大括号内部
- for循环语句:1:经典类似于C语言的循环:for i:=0;i<10;i++{内容}
用于表示while语句:for sum<1000{sum+=sum}\
注意!for循环的三个参数都是可以省略的,并且有不同的表达含义
if与for相同,可以在表示式前执行一个简短语句,切记else语句要跟在if语句结束后那一行
- Switch语句:
a :=2
switch a{
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")
}
t := time.Now()
switch {
case t.Hour()< 12:
fmt.Println("It's before noon" )
default:
fmt.Println("It's after noon")
与c不同的是执行完某个case语句便会停止,而不是跑完所有case分支,且可以以Switch的分支条件更为自由,如图中第二个switch语句
5.一些基础数据结构
- 数组:数组[n]T表示一个数组,它拥有n个类型为T的值
表达式:var a[10] int(若n=0则切片的值为nil) - 切片:利用make创造一个切片,会分配一个元素为0的数组并返回一个引用了它的切片,如a:=make([]int,5)——若要指定容量,就传入第三个容量参数,用append去增加元素
- Map:可看成python的字典,映射将键映射到值,零值为nil,nil映射既没有键,也不能添加键。make函数会返回给定类型的映射,可以说相当常用,声明语法:var mapName map[KeyType]valueTYpe
m:=make(map[int]string)
6.结构体与结构体方法
结构体在Go语言中是一种聚合类型,很常用,类似于一个类
定义:
type user struct{
name string
age uint32
}
7.Go语言的包调用
Go语言中有相当多的包可以调用并使用,Time、srtconv、strings等等,要学会搜索并使用需要的包才可以实现开发的高效性