Go-包和模块-声明和使用包(三)
导读:除了导出类型和函数之外,Go语言中的包还可以包含变量、常量和导出的方法。下面是一个包含变量和常量的示例:package myPackage var Message string = "Hello, world!" const Pi fl...
除了导出类型和函数之外,Go语言中的包还可以包含变量、常量和导出的方法。下面是一个包含变量和常量的示例:
package myPackage
var Message string = "Hello, world!"
const Pi float64 = 3.1415926
func (p *Person) GetAge() int {
return p.Age
}
在上面的代码中,我们定义了一个名为Message
的全局变量和一个名为Pi
的常量,它们都是可导出的。我们还在Person
类型上定义了一个名为GetAge
的方法来获取一个人的年龄。
在其他的源代码文件中,如果需要使用myPackage
中的变量或方法,可以按照以下方式导入它们:
package main
import (
"fmt"
"myPackage"
)
func main() {
fmt.Println(myPackage.Message)
fmt.Println(myPackage.Pi)
p := myPackage.NewPerson("Alice", 25)
fmt.Println(p.GetAge())
}
在上面的代码中,我们导入了myPackage
包,并打印了其中的变量Message
和常量Pi
的值。我们还创建了一个Person
类型的实例p
,并调用其GetAge
方法来获取这个人的年龄。
值得注意的是,在Go语言中,包名可以和包所在的目录名不同。例如,我们可以将上面的myPackage
包保存在一个名为utils
的目录中,并将包名改为utils
,代码示例如下:
package utils
var Message string = "Hello, world!"
const Pi float64 = 3.1415926
type Person struct {
Name string
Age int
}
func NewPerson(name string, age int) *Person {
return &
Person{
name, age}
}
func (p *Person) SayHello() {
fmt.Printf("Hello, my name is %s, I'm %d years old.\n", p.Name, p.Age)
}
func printPerson(p *Person) {
fmt.Printf("Name: %s, Age: %d\n", p.Name, p.Age)
}
func (p *Person) GetAge() int {
return p.Age
}
在其他的源代码文件中,我们可以通过以下方式导入这个包:
import "utils"
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Go-包和模块-声明和使用包(三)
本文地址: https://pptw.com/jishu/9978.html