Golang 在模块内创建一个类
在本文中,我们将编写一个 Golang 程序,在模块内创建一个类。该程序只使用结构体而不使用类,结构体将包含数据字段。
模块是一个包含 go.mod 文件的包集合,该文件确定了模块的目录。
使用子结构体
在这种方法中,我们将编写一个 Golang 程序,使用子结构体在模块内创建一个类,将创建一个名为 createstruct 的函数,此函数将从另一个模块调用以打印子级信息。
步骤
- 第 1 步 − 在程序中导入 mymodule 和 fmt 包以执行程序
-
第 2 步 − 创建一个子结构体,其中 Name 的类型为 string,Age 的类型为 int
-
第 3 步 − 创建一个名为 createstruct 的函数,并在该函数中添加一个打印语句
-
第 4 步 − 然后使用 import 语句将此模块导入其他模块
-
第 5 步 − 在 Child 构造函数中传递子级的姓名和年龄
-
第 6 步 − 从其他模块调用该函数,将打印那个模块中的语句
-
第 7 步 − 使用 fmt 包的 Println 函数执行打印语句
示例
以下示例演示了使用子结构体在模块内创建类的 Golang 程序。
package mymodule
import "fmt"
type Child struct {
Name string
Age int
}
func (c *Child) createstruct() {
fmt.Printf("Hello, my name is %s and I'm %d years old\n", c.Name, c.Age)
}
import "mymodule"
func main() {
c := mymodule.Child{Name: "Rahul", Age: 10}
c.createstruct()
}
输出
Hello, my name is Rahul and I’m 10 years old
使用矩形结构体
在这个示例中,我们将编写一个Golang程序,在模块内部使用Rectangle结构体来创建一个类。在area函数中调用将返回宽度和高度的乘积。
步骤
- 第1步 - 在程序中导入mymodule包和fmt包以执行程序。
-
第2步 - 创建一个带有宽度和高度的Rectangle结构体。
-
第3步 - 创建一个Area函数,在该函数中返回宽度和高度的乘积。
-
第4步 - 在另一个模块中导入此模块,并在主函数中将宽度和高度传递给Rectangle构造函数。
-
第5步 - 调用Area函数并打印矩形的面积。
-
第6步 - 使用fmt包中的Println函数执行打印语句。
示例
下面的示例是一个使用Rectangle结构体在模块内部创建类的Golang程序。
package mymodule
type Rectangle struct {
Width float64
Height float64
}
func (rect Rectangle) Area() float64 {
return rect.Width * rect.Height
}
import "mymodule"
func main() {
rect := mymodule.Rectangle{Width: 6, Height: 4}
fmt.Println("The area of the rectangle is:", rect.Area())
}
输出
The area of rectangle is 24
使用名字结构
在这个方法中,我们将编写一个Golang程序,使用名字结构在模块内创建一个类。函数将在module1中创建,module1将在执行main的地方导入。变量被用作指向结构体的指针。
步骤
- 步骤1 - 程序导入了fmt和main包,其中fmt帮助格式化输入和输出,main帮助产生可执行代码。
-
步骤2 - 创建一个带有一个字段Name的demo_struct。
-
步骤3 - 然后,创建一个函数Get_name,其中demo_struct的指针指向变量s。
-
步骤4 - 在函数中使用dot符号与s一起返回Name。
-
步骤5 - 在执行main的文件中导入模块。
-
步骤6 - 在main中设置结构体的字段值。
-
步骤7 - 使用dot符号与s一起调用函数。
-
步骤8 - 使用fmt包的Println函数在控制台上打印输出。
示例
以下示例是一个使用名字结构在模块内创建类的Golang程序。
package main
import "fmt"
type demo_struct struct {
Name string
}
func (s *demo_struct) Get_name() string {
return s.Name
}
package main
import "module1"
func main() {
s := &module1.demo_struct{Name: "Ritika"}
name := s.Get_name()
fmt.Println(name)
}
输出
Ritika
结论
我们编译并执行了使用三个示例创建模块内部的类的程序。在这些示例中,我们在一个模块内创建了一个结构体,并在另一个模块中导入了该模块,但在第一个示例中,我们使用了一个带有子项的结构体,在第二个示例中我们使用了带有矩形的结构体,在第三个示例中,我们使用Struct返回了名称。