创建模块内部的类的 Golang 程序
在这篇文章中,我们将编写一个 Golang 程序,创建模块内部的类。该程序中只使用结构体作为数据字段。
模块是具有根目录下 go.mod 文件的包的集合。该文件确定了模块的目录。
使用子结构
在此示例中,我们将编写一个 Golang 程序,使用子结构创建模块内部的类。创建名为 createstruct 的函数,将从另一个模块调用该函数以打印子信息。
算法
- 步骤 1 - 在程序中导入 mymodule 和 fmt 包以执行程序
-
步骤 2 - 创建一个具有类型 string 的名称和整型 Age 的子结构
-
步骤 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 程序,使用矩形结构创建模块内部的类。调用函数面积,其中会返回宽度和高度的积。
算法
- 步骤 1 - 在程序中导入 mymodule 和 fmt 包以执行程序
-
步骤 2 - 创建具有宽度和高度的矩形结构
-
步骤 3 - 创建一个 Area 函数,并在该函数中返回宽度和高度的乘积
-
步骤 4 - 在另一个模块中导入此模块,并在主程序中传递宽度和高度到矩形构造函数中
-
步骤 5 - 调用 Area 函数并打印矩形的面积
-
步骤 6 - 使用 fmt 包的 Println 函数执行打印语句
实例
以下示例是使用矩形结构创建模块内部的类的 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
使用 Name 结构
在这种方法中,我们将编写一个Golang程序,使用名称struct创建模块内的类。函数将在module1中创建,而module1将在main执行时导入。变量用作指向struct的指针。
算法
- 步骤1 − 程序导入fmt和main包,其中fmt帮助格式化输入和输出,main帮助生成可执行代码
-
步骤2 − 创建一个demo_struct,其中含有一个字段Name
-
步骤3 − 然后,创建一个Get_name函数,其中demo_struct的指针指向s变量
-
步骤4 − 在函数中使用点符号加上s返回Name
-
步骤5 − 在执行main的文件中导入该模块
-
步骤6 − 在main中设置struct的字段值
-
步骤7 − 使用点符号加上s调用函数
-
步骤8 − 使用fmt包中的Println函数将输出打印到控制台上
示例
以下示例是使用名称struct创建模块内的类的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,并在另一个模块中导入了该模块。但在第一个示例中,我们使用了带有子级的struct,在第二个示例中,我们使用了带有矩形的struct,在第三个示例中,我们使用struct返回名称。
极客教程