Go语言程序:在类中使用this关键字


在Go编程语言中,没有类的概念,因此使用结构体来演示在类中使用`this`关键字。`this`关键字指的是程序中当前正在执行的当前方法或对象。

在本文中,我们将使用两个例子来了解程序的工作原理。在第一个例子中,我们将通过调用`this`结构体上的方法并打印其名称和年龄来使用`Child`结构体;在第二个例子中,我们将使用`Rectangle`结构体,通过调用`this`结构体上的方法来打印其面积。让我们来看一下实际实现来理解程序。

算法

  • 在程序中导入`fmt`包,这将有助于输入和输出的格式化。

  • 创建一个具有所需字段的结构体。

  • 为了演示`this`关键字的使用,创建一个没有参数的方法,并在结构体上调用该方法。

  • 在主函数中设置实例中的值并调用该方法。

  • 当调用该方法时,当前实例的字段将打印在控制台上。

  • 使用`fmt`包中的`fmt.Println`函数执行打印语句。

示例1

在这个例子中,我们将创建一个具有两个字段`Name`和`age`的`Child`结构体。在`Child`结构体上创建一个没有参数的`greet`函数,当调用该方法时,其中的语句将作为输出打印。在这里,`c.Name`和`c.Age`将指代当前实例。让我们看看代码是如何执行的。

package main

import "fmt"

type Child struct {
   Name string
   Age  int
}

func (c Child) greet() {
   fmt.Printf("Hello, my name is %s and I'm %d years old.\n", c.Name, c.Age)
}

func main() {
   c := Child{"Veronica", 16}  //set the values of the instance
   c.greet()  //call the method
}

输出

Hello, my name is veronica and I'm 16 years old.

示例2

在这个例子中,我们创建结构体的方式与上一个例子类似。这里,矩形的两个字段`width`和`height`将相乘以获得当前实例的面积。在主函数中,当调用`Area()`方法时,将打印矩形的面积。让我们看看代码是如何执行的。

package main

import "fmt"

type Rectangle struct {
   Width  float64
   Height float64
}

func (rect Rectangle) Area() float64 {
   return rect.Width * rect.Height
}

func main() {
   rect := Rectangle{6.0, 10.0}//set the values in the instance
   fmt.Printf("Area of rectangle with width %.2f and height %.2f is %.2f\n", rect.Width, rect.Height, rect.Area()) //print the area of the rectangle
}

输出

Area of rectangle with width 6.00 and height 10.00 is 60.00

结论

我们使用两个例子执行并编译了该程序,展示了在类中使用`this`关键字。在第一个例子中,使用了`child`结构体;在第二个例子中,使用了`rectangle`结构体来演示`this`关键字的使用。这里,它是通过在结构体上调用方法并打印字段值来演示的。

更新于:2023年7月20日

230 次浏览

开启您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.