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)
}