卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章44654本站已运行31027

深入理解Go语言中的类方法和对象方法

go 语言中没有传统的类和对象,而是使用 struct 和方法。类方法绑定到类型,用于操作整个类型。对象方法绑定到对象实例,用于操作特定实例。两者接收者不同:类方法的接收者是类型,而对象方法的接收者是对象实例指针。命名约定也存在差异:类方法首字母大写,对象方法首字母小写。

深入理解Go语言中的类方法和对象方法

深入理解 Go 语言中的类方法和对象方法

Go 语言中不存在传统意义上的类和对象,而是使用 struct 和方法来模拟类和对象行为。理解类方法和对象方法对于有效地使用 Go 语言至关重要。

类方法

类方法绑定到类型本身,而不是特定对象实例。它们通常用于操作或初始化整个类型,例如创建新实例。使用 func 关键字声明类方法,并以首字母大写作为约定,表明它是类方法:

type Person struct {
  name string
  age  int
}

func (p Person) New(name string, age int) Person {
  return Person{name, age}
}

对象方法

对象方法与方法接收者绑定,它允许对特定对象实例执行操作。使用 func 关键字声明对象方法,并以小写字母开头:

type Person struct {
  name string
  age  int
}

func (p *Person) GetName() string {
  return p.name
}

实战案例

以下是一个使用类方法和对象方法的简单示例:

func main() {
  // 使用类方法创建 Person 实例
  p := Person.New("Alice", 25)

  // 使用对象方法获取 Person 实例的姓名
  name := p.GetName()

  fmt.Println(name) // 输出: Alice
}

区别

类方法和对象方法之间最主要的 区别在于它们的接收者:

  • 类方法接收器:结构体类型本身。
  • 对象方法接收器:结构体实例指针(地址)。

命名约定

  • 类方法通常以大写字母开头,表示它们属于类型。
  • 对象方法通常以小写字母开头,表示它们属于对象实例。
卓越飞翔博客
上一篇: pycharm打不开了怎么回事
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏