后端GO基础 | 青训营笔记

41 阅读3分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天 mat包主要是用来往屏幕输入输出东西使用,

go的变量类型,定义方式有如下两种方式:

1.    var 变量名 = 变量值

2.    var 变量名 变量类型 = 变量值

3.    变量名 := 变量类型(变量值)

常见的变量类型与c++类似,但是在go语言中字符串是内置类型,可以直接通过+来实现对于字符串的拼接,大部分运算符的使用和优先级都和c或者c++很类似

go中的if语句与c++中很类似,主要区别就是在if的判断条件不需要使用括号括起来。if后面的执行语句必须要使用大括号括起来,不能像c++一样写成一行

go中循环语句只有for循环,如果直接使用for{ }的话就相当于一个死循环,如果想正常像c++一样使用循环语句也可以,但是不需要对for后面添加大括号,只需要直接写即可

go中的switch-case语句中,不需要在每一个case分支中都写上break语句,在执行完一个case语句后会自动跳出整个switch-case语句,同样的,在switch后面变量名不需要加括号。

go中数组与c++中相类似

go中切片可以看作是一个可变长度的数组,使用make来进行创建,创建完成后可以像数组一样对其使用,追加元素使用append函数,在使用append对切片进行追加之后必须赋值回原数组。格式可以见为: s = append(s, “d”)。在创建的时候可以指定长度,这样在刚创建完就有指定长度了。可以使用copy来在两个切片中拷贝数值。切片也有像在python中一样对于数组的切片操作。

go中map

可以使用make来创建一个空map。如:s:= make(map[string] int)

可以使用delete对其进行删除,可以使用如: r, ok := s[“unknow”]这种语句来检测s中是否有unknow这个key的存在。在go中map是完全无序的,在对其进行遍历的过程中是不会按照字母顺序或者插入顺序对其进行便利

go中range

对于切片或者map,我们可以使用range对其进行遍历,range在便利的时候会返回两个值,一个是索引,一个是索引对应的值。

go中函数

其中变量类型是后置的例如:

func add(a int, b int) int {

return a + b

}

go中函数一般返回两个值,第一个值是真正使用的函数值,第二个值是错误信息。

go中指针

相较于c++中指针使用相对较少,主要用途是对传入的参数进行修改

go中结构体

就像:type user structure{

Name string

Password string

}

 

go中结构体方法

接上文中定义的结构体

func (u user) checkPassword(password string) bool {

Return u.password == password

}

使用: a.checkPassword(“2048”)

go中错误处理

主要习惯就是使用一个单独的返回值来实现错误处理

go中字符串操作

strings.Contains识别一个字符串是否包含另一个字符串

strings.count 字符串计数