接口 Interface
是什么:
接口中含有抽象方法,不需要提供具体的实现。它规定了对象应该具备哪些方法。当一个类型实现了接口中定义的所有方法时,我们说该类型满足了该接口。
接口中的方法描述了对象应有的行为,通过实现接口,你可以确保对象具备这个接口所拥有的功能。
为什么:
可以先不实现各种方法,在要用的时候再把接口中的方法实现——达到编写灵活,可扩展,可重用的目的。
代码实例:
// 定义一个Shape接口
type Shape interface {
Area() float64
}
// 实现接口的类型
type Rectangle struct {
Width float64
Height float64
}
// 实现接口中的方法
func (r Rectangle) Area() float64 {
return r.Width * r.Height
}
错误处理 Error Handling
如何使用: 1. errors.New()返回错误信息 2. 在写函数时,返回类型多加一个error类型 3. 用if (error ! = nil) {}来检查错误
什么时候用: 1. 函数可能返回错误时 2. 记录错误日志(与数据库、网络请求、文件系统等交互时可能出现错误,需要记录) 3. 捕获和处理无效的输入、数据
eg.用户提供了无效的密码,需要返回错误并提示用户重新输入
4. 错误传递和处理链:
函数可以将错误传递给调用者,一直往上传,从而实现错误的逐级处理
实例
//errors.New()在errors包下,可返回一个错误信息
package main
import ("fmt"; "errors")
func CircleArea(radius float64) (float64, error) {
if radius < 0 {
return 0, errors.New("negetive number")
}
}
//在main函数中用if确定是否出现错误 【错误检查】
func main() {
area, err := CircleArea(-1)
//Go语言中可以同时赋值,CircleArea函数返回的值分别赋给area和err.
if (err != nil) {
fmt.Println(err)
}
}
字符串操作 strings包
-
查找字符串中是否存在某字符串片段 :
strings.Contains(str, "某片段") -
计数:
strings.Count -
查找第一次出现的下标:
strings.Index -
将两个字符串用什么连接:
strings.Join([]string{"he", "llo", "-"})结果为he-llo -
使字符串重复出现:
strings.Repeat("abc", 2)abcabc -
将字符串按照某字符串的标准划分并生成一个字符串切片:
strings.Split("a-b-c", "-")[a b c]切片 -
替换:
strings.Replace(str, 被替换掉的字符串, 替换上的字符串, n)其中,
n为指定替换的次数。如果n大于0,则只替换前n个匹配项;如果n小于0,则替换所有匹配项;如果n等于0,则不进行替换。 -
提取字符串长度:
len(str)
JSON处理
-
是什么:
它是指对JSON(JavaScript Object Notation)数据进行操作和转换的过程。JSON是一种轻量级的数据交换格式,常用于在不同系统之间传输和存储数据。
-
为什么:
-
可读性和可调试性好:JSON使用简洁的文本格式表示数据
eg. Person结构体的JSON表示为
{"name":"Alice","age":25} -
跨平台和编程语言进行交流和共享数据
-
支持各种复杂的数据结构,将对象、切片等转化为字符串,方便传输
-
易于生成和解析