2.3. 常用注意事项 8:结构体实现方法

未匹配的标注

g g study,d d up!

常用注意事项 8:结构体实现方法

8. 结构体可以实现方法,这些方法可以在结构体上调用,并且可以访问结构体的字段。方法可以用于结构体的行为,类似于面向对象编程中的方法。

以下是一个结构体实现方法的详细示例:

package main

import (
    "fmt"
)

type Rectangle struct {
    width  float64
    height float64
}

func (r Rectangle) area() float64 {
    return r.width * r.height
}

func (r *Rectangle) resize(newWidth, newHeight float64) {
    r.width = newWidth
    r.height = newHeight
}

func main() {
    r := Rectangle{5, 10}
    fmt.Println("Width:", r.width, "Height:", r.height)
    fmt.Println("Area:", r.area())

    r.resize(3, 6)
    fmt.Println("New Width:", r.width, "New Height:", r.height)
    fmt.Println("New Area:", r.area())
}

在这个示例中,我们定义了一个Rectangle结构体,该结构体具有两个公共字段widthheight。我们还定义了两个方法:

  • area():计算矩形的面积,使用值接收器声明
  • resize():调整矩形的大小,使用指针接收器声明

area()方法中,我们只需要访问结构体的字段来计算面积。因此我们使用值接收器声明,这意味着area()方法会获得Rectangle结构体的副本,而不是原始结构体。

resize()方法中,我们需要修改结构体的字段来调整矩形的大小。因此我们使用指针接收器声明,这意味着resize()方法会获得Rectangle结构体的指针,以便我们可以修改结构体的字段。

main()函数中,我们首先创建了一个Rectangle结构体实例,并打印其宽度,高度和面积。接下来,我们调用resize()方法,将矩形的大小调整为3 x 6。最后,我们再次打印宽度,高度和面积,以验证resize()方法的工作是否正确。

总之,结构体可以通过方法来定义自己的行为,这使得 Go 语言非常适合构建面向对象的应用程序。

欢迎关注公众号上海php自学中心,一起交流。

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~