这是我参与「第五届青训营」伴学笔记活动的第一天
一、本堂课的重点:
- 什么是go语言(特性)
- go语言的基础语法介绍
- 一些实战的案例分析
二、详细知识点介绍:
1.go语言的特性
2.go语言的基础语法
- 变量
感觉和js的定义有几分相似,但比js功能更加强大,可以声明或者不声明变量类型
var a = "hello world"
var b, c int = 1, 2
var d = true
var e = float64
f := float32(e)
const s string = "constant"
- if else
在if 和 else的语句猴不能添加括号 但在条件结束后必须添加大括号
if 7 % 2 == 0 {
fmt.Println("7 is even")
}else {
fmt.Println("7 is odd")
- 循环
go中没有while 和do while循环,之后for循环,第一个为死循环,第二个为标准格式的for循环
// 1
for {
fmt.Println("loop")
break
}
// 2
for j := 7; j < 9; j++ {
fmt.Println(j)
}
- 数组和切片
数组和切片类似于java的数组和ArrayList,前者为固定长度吗,后者长度可通过append和copy动态变化
//普通的定长数组
var a [4]int
a[0] = 100
b := [6]int = {1,2,3,4,5,6}
//功能类似于java的Arraylist
s := make([]string, 3)
s[0] = "a"
s[1] = "b"
s[2] = "c"
s = append(s, "d","e")
- map 与java的hashmap功能几乎一致,保存key-value键值对
m := make(map[string] int)
//key-value键值对
m["one"] = 1
m["two"] = 2
r, ok := m["unknown"]
delete(m, "one")
- 结构体 和c语言的struct几乎一致,可以定义结构体至指针
type user struct {
name string
password string
}
func main() {
a := user{name: "wang", password: "1024"}
b := user{"wang", "1024"}
c := user{name: "wang"
c.password = "1024"
var d user
d.name = "wang"
d.password = "1024"
fmt.Println(a, b, c, d) // {wang 1024} {wang 1024} {wang 1024} {wang 1024}
fmt.Println(checkPassword(a, "haha")) // false
fmt.Println(checkPassword2(&a, "haha")) // false
}
func checkPassword(u user, password string) bool {
return u.password == password
}
func checkPassword2(u *user, password string) bool {
return u.password == password
}
3.实战案例
- 猜谜游戏 通过给定一个随机数,接收用户的猜测结果,反馈偏大偏小,通过循环不断进行,直到找到那个数。
三、学习小结 今天是学习go语言的第一天,通过熟悉其基本的语法结构,与c和java的代码格式均有比较大的差异,还需要慢慢适应这种代码格式,还需不断地练习,学习了一些基本的实例编写,前方的路还很长,还需要不断的努力学习。