首页后端开发GOGo-包和模块-声明和使用包(二)

Go-包和模块-声明和使用包(二)

时间2023-04-27 07:18:01发布访客分类GO浏览405
导读:包的可见性在Go语言中,包中的变量、函数、结构体类型等可以分为两类:可导出(Exported)和不可导出(Unexported)。可导出的标识符(如函数、类型或变量)的名称以大写字母开头,不可导出的则以小写字母开头。只有可导出的标识符可以被...

包的可见性

在Go语言中,包中的变量、函数、结构体类型等可以分为两类:可导出(Exported)和不可导出(Unexported)。可导出的标识符(如函数、类型或变量)的名称以大写字母开头,不可导出的则以小写字母开头。只有可导出的标识符可以被其他包中的代码访问和使用,而不可导出的标识符只能在同一包内部使用。

例如,在下面的代码中,我们定义了一个可导出的类型Person和一个不可导出的函数printPerson::

package myPackage

import "fmt"

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)
}

在上面的代码中,我们定义了一个可导出的类型Person和一个不可导出的函数printPersonPerson类型包含了一个名为Name的字符串和一个名为Age的整数。我们还定义了一个NewPerson函数来创建Person类型的实例,以及一个SayHello方法来打印出一个人的问候语。printPerson函数是一个不可导出的函数,只能在myPackage包内部使用。

在其他的源代码文件中,如果需要使用myPackage中的类型或函数,需要先将其导入到当前的源代码文件中:

package main

import "myPackage"

func main() {

    p := myPackage.NewPerson("Alice", 25)
    p.SayHello()
}
    

在上面的代码中,我们在main函数中创建了一个名为pPerson类型的实例,并通过调用其SayHello方法来打印问候语。在创建实例时,我们使用了myPackage中的NewPerson函数来创建一个新的Person类型的实例。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

go

若转载请注明出处: Go-包和模块-声明和使用包(二)
本文地址: https://pptw.com/jishu/9980.html
Go-包和模块-main 包和其他包的区别 Go-并发编程-使用 select 语句实现多路复用(一)

游客 回复需填写必要信息