出于可重用的目的,包是管理 Go 代码的良好开端,因为我们可以将其导入并使用到我们的程序中。
让我们创建一个简单的主文件,以
开始package main import "fmt" func main() { fmt.Println("hello world!") }
这是一个简单的 hello world 程序,当我们运行 go run main.go 时,它会打印出 hello world 字符串。
现在让我们首先创建模块来启动一个包。通常它使用 git 存储库,即使我们没有计划将其推送到任何存储库。在此示例中,我将使用我自己的 Github 存储库并使用 mygopackage 作为包名称。
git mod init github.com/didikz/mygopackage
然后创建一个子目录,例如我使用 models 并在其中创建一个 user.go 。结构应该是这样的
在 user.go 内部,我将简单地创建一个结构体和一个接收器,稍后可以将其导入到 main.go 中。我还将当前目录名称后面的包名称设置为 models
package models type User struct { Id int FirstName string LastName string Address string } func (user *User) GetName() string { return user.FirstName " " user.LastName }
回到main.go,现在我们可以尝试导入包并使用定义的结构。使用之前启动的模块名称和包名称。
import "github.com/didikz/mygopackage/models"
现在要使用包中的用户模型,我们可以这样写
var user models.User user.Id = 1 user.FirstName = "Didik" user.LastName = "Tri Susanto" user.Address = "Malang" // or alternatively user := models.User{Id: 1, FirstName: "Didik", LastName: "Tri Susanto", Address: "Malang"} fmt.Println(user.GetName())
一切就绪。接下来,如果我们运行 go run main.go 那么它应该打印出 Didik Tri Susanto
简单吧?
现在最终的 main.go 文件应该是这样的
package main import ( "fmt" "github.com/didikz/mygopackage/models" ) func main() { user := models.User{Id: 1, FirstName: "Didik", LastName: "Tri Susanto", Address: "Malang"} fmt.Println(user.GetName()) }
就是这样,编码愉快!
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3