Golang 展示提升方法

Golang 展示提升方法

在Golang中,提升方法是在嵌入在另一个结构体内部的结构体中创建的方法,现在嵌入它的结构体可以访问其方法和字段。在本文中,我们将解释如何使用各种结构体(如Rectangle和Square、Vehicle和car)展示提升方法。

步骤

  • 第1步 - 创建一个main包,并在程序中声明fmt(格式化包)包,其中main生成可执行代码,fmt帮助格式化输入和输出。

  • 第2步 - 创建一个Rectangle结构体,包含两个float类型的字段widthheight

  • 第3步 - 创建一个名为Area()的方法,用于计算矩形的面积。

  • 第4步 - 创建另一个Square结构体,其中包含一个字段,表示方形的边长,类型为float,并将Rectangle结构体嵌入其中,即Rectangle的所有字段和方法将在Square内部访问。

  • 第5步 - 在main函数中,使用点符号设置矩形的宽度和高度,然后调用提升的area方法。

  • 第6步 - 最后,使用fmt包的Println函数将矩形的面积打印在控制台上,其中ln表示换行。

示例1

在这个示例中,我们将创建两个结构体RectangleSquare,我们将Rectangle结构体嵌入Square结构体中,所有Rectangle的字段和方法都可以通过Square访问。

package main

import (
   "fmt"
)

type Rectangle struct {
   width, height float64  
}

func (rect Rectangle) Area() float64 {
   return rect.width * rect.height     
}

type Square struct {
   side float64     
   Rectangle
}

func main() {
   sqr := Square{side: 6}
   sqr.width = 3
   sqr.height = 4    
   fmt.Println("The area of rectangle is:")
   fmt.Println(sqr.Area()) 
}

输出

The area of rectangle is:
12

示例2

在这个示例中,我们将使用Vehicle和Car结构示例来展示提升的方法。在这里,Vehicle将被嵌入到Car结构中,这意味着Vehicle下的方法和字段现在可以被Car结构访问。

package main

import (
   "fmt"
)

type Vehicle struct {
   color string         
}

func (vch *Vehicle) Start() {
   fmt.Println("Starting vehicle...") 
}

type Car struct {
   brand string
   *Vehicle      
}  

func main() {
   cr := Car{
      brand: "Tatan Motors",
      Vehicle: &Vehicle{
         color: "Grey",
      },
   }
   fmt.Println(cr.color) 
   cr.Start()          
}

输出

Grey
Starting vehicle...

示例3

在这个示例中,我们将编写一个Golang程序,演示使用继承方法的示例。在Person和Employee结构体中,greet将是继承的方法,因为它可以访问Person结构体。

package main

import "fmt"

type Person struct {
   name string
   age  int
}

func (p Person) greet() {
   fmt.Println("Hello, my name is", p.name)
}

type Employee struct {
   Person
   Salary float64
}

func main() {
   emp := Employee{Person{"Kanika", 26}, 150000.00}
   emp.greet()
}

输出

Hello, my name is Kanika

结论

我们编写并执行了展示使用三个示例的提升方法的程序。在第一个示例中,我们使用了Rectangle和Square结构体来使用提升方法,在第二个示例中,我们使用了Vehicle和Car结构体,在第三个示例中,我们使用了Person和Employee结构体来执行程序。因此,程序成功执行。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程