Go语言入门 | 青训营笔记

27 阅读1分钟

go语言基础类型

  • 字符串
  • 整数
  • 浮点型
  • 布尔型

定义变量:

var 变量 = ''

自动推导类型

f := ''

两种方式

常量没确定类型

const

if,else:

 不用写括号,后直接跟大括号

没有while循环,只有for:

for == while

switch:

后不加()
后不用加break;  
可以switch()里不加任何东西,在case里写条件语句

var a [5]int

切片:(可见长度数组)

s := make([]string,3)
s[1] = "a"
s = append(s, "d")
fmt,Println(s[2:5])

map:

m := make (map [string] int) 

r, ok := m["unknow"]// 0, false

range:

nums是数组时:
    for i, num := range nums // i 索引, num 值
m是map时:
    m := map[string]int
    for k, v := range m  //k是 key,v是value

go语言特点:变量类型后置

指针与C语言指针一样

结构体:

type user struct {
    n string
    p string
}

a := user{n:"a" , p:"b"}
b := user{"a" , "b"}
c := user{n:"a"}
c.p = "115"
var d
d.n = "a"
d.p = "b"

结构体方法:

func (u user) checkP (p string) bool{
    return u.p == p
}

a.checkP("112") //false

错误处理:

函数返回类型加上 err error
func finduser(users []user,name string)(v *user,err error){
    for _,u := range users
        if u.name == name{
            return &u,nil
        }
    return nil,errors.New("not found")

字符串操作:

Snipaste_2023-05-15_22-24-03.png

格式化:

Snipaste_2023-05-15_22-24-47.png

json处理:

type userInfo struct{
    Name string
    Age int 'json:"age"'
    Hobby []string
}
属性首字母大写即可用json.Marshal()处理
a := userInfo{Name:"wang",Age:18,Hobby:[]string{"Golang","TypeScript"}}
buf,err := json.Marshal(a)
fmt.Println(buf)//[123 34 78 97...] 十六进制编码
fmt.Println(string(buf))//{"Name":"wang","age":18,"Hobby":"Golang","Typescript"])

时间处理:

Snipaste_2023-05-15_22-31-54.png

数字解析:

Snipaste_2023-05-15_22-32-45.png

进程处理:

Snipaste_2023-05-15_22-33-28.png

总结:

由于本次课程大多是介绍go的基本语法,所以就比较少有特别注意的地方,这些知识都是记住多用就好,所以就整体看起来很shui,都是代码。但我想,多放些课程中的例题也能很好的查看语法,及时巩固知识。