day3 go语言基础| 青训营

63 阅读1分钟

1.错误处理

  • 在Go中,函数通常将错误作为额外的返回值返回;
  • 在函数内部,需要判断是否存在错误;
  • 这里简单解释一下nil这个关键字:
  • nil相当于其他语言中的null; 比如下面这个寻找用户的函数,如果没有找到符合的用户,那么返回user肯定就是个空的,这里就用nil来代替,在go语言中,除了int,bool有自己的表示空的值,其他类型都用nil来表示
func findUser(users *[]user,name string)(u *user,e error){
	for _,uu := range *users{
		if uu.name == name{
			return &uu,nil
		}
	}
	return nil, errors.New(`not find`)
}
func main() {
	var a = user{`xm`, `12345`,`xm123456`}
	var users = []user {
		a,
		{`xs`,`123`,`123`},
	}
		
	result, err := findUser(&users,`xs`)
	if err != nil{
		fmt.Print(err)
	} else{
	fmt.Println(result.name)
	}

}

2.json操作

首先定义一个结构体,与json结构进行对应,注意这个结构体的变量名首字母大写

type Person struct {
	Name string `json:"name"`
	Age  int    `json:"age"`
}

然后使用Marshall函数将结构体变量去序列化,变为json字符串

func main() {
   person := Person{
        Name: "Bob",
        Age:  25,
    }
    data, err := json.Marshal(person)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    jsonString := string(data)
    fmt.Println(jsonString)
}