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
}
golang在外层包对里层包中的变量初始化

原文地址: https://www.cveoy.top/t/topic/bqjL 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录