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
結論
我們編譯並執行了使用三個示例在模組內建立類的程式。在這兩個示例中,我們在模組內建立了一個結構體並在另一個模組中匯入了該模組,但在第一個示例中,我們使用了帶子結構體的結構體,在第二個示例中,我們使用了帶矩形的結構體,在第三個示例中,我們使用結構體返回了名稱。
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP