例如,结构:
/src
main.go
/test
test1.go
test2.go
,main.go
package main
import (
"fmt"
"./test"
)
func main(){
fmt.Println(test.A)
}
test1.go:
package test
var A = []int{1,2,3}
test2.go:
package test
var A = []int{3,7}
我明白,这是一个错误的代码,它会抛出错误,因为我正在重新声明变量。我只想问一下,我应该从哪个方式连接一个包的文件中的同名变量?
答案 0 :(得分:2)
您可以使用init()
函数启动切片并附加到切片:
test1.go:
package test
var A = []int{}
func appendA(v ...int) {
A = append(A, v...)
sort.Ints(A) // sort to make deterministic order per @peterSO comment
}
func init() {
appendA(1, 2)
}
test2.go:
package test
func init() {
appendA(3, 4)
}
答案 1 :(得分:1)
例如,
test1.go
:
package test
var A []int
func init() {
A = append(a1, a2...)
}
var a1 = []int{1, 2, 3}
test2.go
:
package test
var a2 = []int{3, 7}
main.go
:
package main
import (
"fmt"
"test"
)
func main() {
fmt.Println(test.A)
}
输出:
[1 2 3 3 7]