Go语言程序:展示提升的方法
在Go语言中,提升的方法是在嵌入到另一个结构体中的结构体中创建的方法。现在,嵌入它的结构体可以访问其方法和字段。在本文中,我们将解释如何使用各种结构体(如矩形和正方形、车辆和汽车)来展示提升的方法。
算法
步骤1 − 创建一个名为main的包,并在程序中声明fmt(格式化包),其中main生成可执行代码,fmt帮助格式化输入和输出。
步骤2 − 创建一个矩形结构体,它有两个字段:宽度和高度,类型为浮点数。
步骤3 − 然后,创建一个名为Area()的方法,计算矩形的面积。
步骤4 − 创建另一个正方形结构体,它只有一个字段表示正方形的边长,类型为浮点数,并将矩形结构体嵌入其中,即正方形可以访问矩形的所有字段和方法。
步骤5 − 在main函数中,使用点表示法设置矩形的宽度和高度,并调用提升的area方法。
步骤6 − 最后,矩形的面积将使用fmt包中的Println函数打印到控制台,其中ln表示换行。
示例1
在这个例子中,我们将创建两个结构体Rectangle和Square,我们将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
在这个例子中,我们将编写一个Go语言程序来展示使用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结构体来执行程序。因此,程序成功执行。
数据结构
网络
关系数据库管理系统(RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP