温馨提示×

Go语言结构体字段可见性如何定

小樊
81
2024-11-08 13:18:13
栏目: 编程语言

在Go语言中,结构体的字段可见性由字段名的首字母大小写决定。如果字段名首字母大写,则该字段为公开(Public),可以在包外部访问;如果字段名首字母小写,则该字段为私有(Private),只能在包内部访问。

以下是一个示例:

package main

import (
	"fmt"
	"mypackage"
)

type myStruct struct {
	PublicField  string // 可以在包外部访问
	privateField string // 只能在包内部访问
}

func main() {
	s := myStruct{"Hello, public!", "Hello, private!"}
	fmt.Println(s.PublicField) // 输出:Hello, public!
	// fmt.Println(s.privateField) // 编译错误:不能在包外部访问私有字段

	mypackage.MyFunction(s)
}

在这个例子中,我们定义了一个名为myStruct的结构体,其中包含两个字段:PublicFieldprivateFieldPublicField的首字母大写,因此它是公开的,可以在包外部访问;privateField的首字母小写,因此它是私有的,只能在包内部访问。

main函数中,我们创建了一个myStruct实例,并尝试访问它的字段。我们可以成功访问PublicField,但是无法访问privateField,因为它在包外部是私有的。此外,我们还展示了如何调用包内的函数MyFunction,并将myStruct实例作为参数传递。

0