零基础之go语言3 | 青训营笔记

84 阅读2分钟

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

这次从错误处理开始

go语言3:

语法

错误处理

不同于Java的捕获异常,以及java的三大异常类。go语言的错误处理方式,能清晰地知道哪个函数返回了错误,并且能用简单的 if else 来处理错误。
golang中的错误处理比java更好理解更加简单,仅仅是用一个err类的方法来返回错误信息

具体使用方法看以下代码即可

func Err() {
   println("this is Err")
   x := []userErr{{name: "xuan", pwd: "xuan123"}}
   fmt.Println("以下分别查找为xuan,kukuku的名字的用户")
   v, error := getUser(x, "xuan")
   fmt.Println(v, error)
   v, error = getUser(x, "kukuku")
   fmt.Println(v, error)
}

type userErr struct {
   name string
   pwd  string
}

func getUser(users []userErr, name string) (v *userErr, err error) {
   for _, u := range users {
      if u.name == name {
         return &u, nil
      }
   }
   return nil, errors.New("未查询到,请重试")
}

结果如下

this is Err
以下分别查找为xuan,kukuku的名字的用户
&{xuan xuan123} <nil>
<nil> 未查询到,请重试

字符串相关操作

如图

image.png

常见方法有:包含、计数、以...开头/结尾、索引、添加字符、重复、改变某个/全部字符大小写、删除某个字符、求字符串长度等

%v

在golang中,%v能够代替c中的%s、%d、%f等等,无需开发者自己判断所要打印出来的是什么类型
甚至%+v、%#v能够打印出更加详细的内容

时间

在golang中,time.now()是最为常用的,可获取当前时间段:
2023-01-22 14:35:47.7462332 +0800 CST m=+0.006778601

func Time() {
   println("this is Time")
   now := time.Now()
   fmt.Println("time.now:", now)
   fmt.Println(now.Date())
   fmt.Println(now.Year())
   fmt.Println(now.Hour())
   fmt.Println(now.Format("2006-01-02 15:04:05"))
}
这段代码解释了如何获取当前时间,当前时间的年月日小时等

但是Format方法(时间格式化)有一个需要特别注意的地方,格式化时,你的layout必须是对应2006-01-02 15:04:05这段时间
也正因如此,golang才能区分开你要的是年还是小时还是分钟

而对于为什么是这个时间2006-01-02 15:04:05,官方也给出了一个很合理的解释:
这段时间可以写为Jan 2 15:04:05 2006 MST,恰恰对应1 2 3 4 5 6 -7

数字与字符串

在golang中,用 Atoi 把一个十进制字符串转成数字,用 itoA 把数字转成字符串。
即 数字+itoA=字符串,字符串+Atoi=数字

而对于数字直接的处理,golang提供了一个strconv包,如下图

image.png

以上便是个人认为较为重要的基础语法,感谢大家的阅读