golang在外层包对里层包中的变量初始化
Golang中,外层包可以对里层包中的变量进行初始化,但需要注意一些规则。
首先,里层包中的变量必须是导出的(即首字母大写),才能被外层包访问和初始化。
其次,如果里层包中的变量是一个结构体类型,那么外层包初始化时需要使用结构体字面量的形式来进行赋值,例如:
package inner
type InnerStruct struct {
Field1 string
Field2 int
}
package outer
import "your-package/inner"
func init() {
s := inner.InnerStruct{
Field1: "hello",
Field2: 123,
}
}
最后,如果里层包中的变量是一个非结构体类型(例如一个字符串、数组等),那么外层包初始化时直接赋值即可,例如:
package inner
var InnerString string = "hello"
package outer
import "your-package/inner"
func init() {
s := inner.InnerString
}
原文地址: https://www.cveoy.top/t/topic/bqjL 著作权归作者所有。请勿转载和采集!