Go语言基础语法笔记2

146 阅读3分钟

接口 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}

  • 跨平台和编程语言进行交流和共享数据

  • 支持各种复杂的数据结构,将对象、切片等转化为字符串,方便传输

  • 易于生成和解析