后端与Go基础|青训营笔记

41 阅读2分钟

这是我参与「第五届青训营」伴学笔记活动的第一天

一、本堂课的重点:

  1. 什么是go语言(特性)
  2. go语言的基础语法介绍
  3. 一些实战的案例分析

二、详细知识点介绍:

1.go语言的特性

image.png

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.实战案例

  • 猜谜游戏 通过给定一个随机数,接收用户的猜测结果,反馈偏大偏小,通过循环不断进行,直到找到那个数。

image.png

三、学习小结 今天是学习go语言的第一天,通过熟悉其基本的语法结构,与c和java的代码格式均有比较大的差异,还需要慢慢适应这种代码格式,还需不断地练习,学习了一些基本的实例编写,前方的路还很长,还需要不断的努力学习。