Go 语言程序在模块内创建类
本文将编写一个 Go 语言程序,在模块内创建类。该程序不使用类,只使用结构体来存储数据字段。
模块是包含 go.mod 文件的包的集合,该文件位于模块的根目录,并确定模块的目录。
使用子结构体
在此方法中,我们将编写一个 Go 语言程序,使用子结构体在模块内创建类。我们将创建一个名为 createstruct 的函数,该函数将从另一个模块调用以打印子信息。
算法
步骤 1 − 在程序中导入 mymodule 和 fmt 包以执行程序
步骤 2 − 创建一个名为 Child 的结构体,其中包含 Name(字符串类型)和 Age(整数类型)字段
步骤 3 − 创建一个名为 createstruct 的函数,并在该函数中添加打印语句
步骤 4 − 然后,使用 import 语句在另一个模块中导入此模块
步骤 5 − 将孩子的姓名和年龄传递给 Child 结构体的构造函数
步骤 6 − 从另一个模块调用该函数,并将该模块中的语句打印出来
步骤 7 − 使用 fmt 包中的 Println 函数执行打印语句
示例
以下示例演示了使用子结构体在模块内创建类的 Go 语言程序。
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
使用矩形结构体
在本例中,我们将编写一个 Go 语言程序,使用 Rectangle 结构体在模块内创建类。我们将调用 area 函数,该函数将返回宽度和高度的乘积。
算法
步骤 1 − 在程序中导入 mymodule 和 fmt 包以执行程序
步骤 2 − 创建一个 Rectangle 结构体,其中包含 width 和 height 字段
步骤 3 − 创建一个名为 Area 的函数,并在该函数中返回宽度和高度的乘积
步骤 4 − 在另一个模块中导入此模块,并在 main 函数中将宽度和高度传递给 Rectangle 结构体的构造函数
步骤 5 − 调用 Area 函数并打印矩形的面积
步骤 6 − 使用 fmt 包中的 Println 函数执行打印语句
示例
以下示例是一个使用 Rectangle 结构体在模块内创建类的 Go 语言程序
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
使用 Name 结构体
在此方法中,我们将编写一个 Go 语言程序,使用 name 结构体在模块内创建类。将在 module1 中创建函数,并将导入 module1 到执行 main 函数的文件。变量用作指向结构体的指针。
算法
步骤 1 − 程序导入 fmt 和 main 包,其中 fmt 用于格式化输入和输出,main 用于生成可执行代码
步骤 2 − 创建一个名为 demo_struct 的结构体,其中包含一个名为 Name 的字段
步骤 3 − 然后,创建一个名为 Get_name 的函数,其中 demo_struct 的指针指向 s 变量
步骤 4 − 在函数中,使用点表示法从 s 返回 Name
步骤 5 − 在执行 main 函数的文件中导入该模块
步骤 6 − 在 main 函数中设置结构体的字段值
步骤 7 − 使用点表示法从 s 调用该函数
步骤 8 − 使用 fmt 包中的 Println 函数在控制台上打印输出
示例
以下示例是使用 name 结构体在模块内创建类的 Go 语言程序
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
结论
我们编译并执行了使用三个示例在模块内创建类的程序。在这两个示例中,我们在模块内创建了一个结构体并在另一个模块中导入了该模块,但在第一个示例中,我们使用了带子结构体的结构体,在第二个示例中,我们使用了带矩形的结构体,在第三个示例中,我们使用结构体返回了名称。