Go语言基础语法(6)| 青训营

64 阅读3分钟

不知不觉间,对Go语言的基础语法笔记已经写到了第6篇。昨天的笔记主要回顾了结构体的各种用法,今天接着跟着青训营课程的进度,了解Go语言中如何进行错误处理。

在Go语言中,通过内置的错误接口为我们提供了非常简单的错误处理机制。error类型是一个接口类型,通过error来生成错误信息。仅需通过if else语句即可完成错误处理,找到错误的函数。在启用error时,只需在程序开头处加一笔即可启用: import ( "fmt" "errors" ) 函数通常在最后的返回值中返回错误信息。使用errors.New可返回一个错误信息。在生成函数时,要注意给函数添加一个error类型的返回值。我们做一个对被开方数是否大于0的判断,代码如下: func sqr(a float64)(float64,error){ if a<0{ return 0, error.New("error") } } 这里如果被开方数a小于0,就会报错“error”。当我们输入-1时,使用以下代码就能实现报错: result, err:=sqr(-1) if err != nil{ fmt.println(err) }

接下来的内容是对字符串的操作,这边的种类十分之多,就照用青训营课程中的例子了。首先是在前面函数就有提到过的len,输出的就是字符串的长度。 a:="hello" fmt.println(len(a)) 这里的输出值为5,假若为汉字,那么它的输出值则可能为多个。len是较为基础的操作,接下来的几个操作也较为基础。

假若要判断这个字符串是否包含某个字符或信息,可以使用contains。还是以“hello”为例: fmt.println(strings.contains(a, "ll")) 输出为true。要查找它所在的位置,用index: fmt.println(strings.index(a, "ll")) 输出值为2,查找到了“l”这个字符的的位置。要知道这个字符串包含几个同样的字符则使用count: fmt.println(strings.count(a, "l")) 输出的值为2,即有两个相同的字符“l”。也能对整个字符进行重复的repeat: fmt.println(strings.repeat(a,2)) 这里的2是指对a这个字符串进行重复两遍,所以输出为“hellohello”。也有对英文字符串进行大小写变化的: fmt.println(strings.ToLower(a)) fmt.println(strings.ToUpper(a)) 前一个是全部小写,后一个则是全部大写。若要局部替换一个字符,则需要用到replace。replace需要输入的值较多,我们将“hello”中的小写“e”替换成大写的“E”,代码示意如下: fmt,println(strings.replace(a,"e","E",-1)) 这里的代码是青训营课程中所举例的代码。有些人可能会困惑为什么这里最后一个数字是-1,不明白其中的道理。其实前三个都十分好理解,一个为替换的字符串,一个是老的字符一个为新的字符。其实这最后一个数字是代表替换的次数,而如果输入的是负数,则将所有老的字符全部替换成新的字符。

还剩下两个字符串操作,一个是split一个是join。split字面意思就是分开。有“a-b-c”这个字符串中间用“-”相连,用split即可分离: fmt.println(strings.split("a-b-c","-")) 分离后输出的结果为“a b c”。而join则是让两个字符串相连接,还是以“hello”和“world”为例子,要连成“hello-world”,代码如下: fmt.println(strings.join([]string{"hello","world"},"-"))