2014-09-03 63 views
0

例如,結構:如何連接Golang中一個包的幾個文件中的數據?

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

我明白了,這是一個錯誤的代碼,它拋出錯誤,因爲我重新聲明變量。我只想問一下,我應該用哪種方法將一個包中的文件中的同名變量連接起來?

回答

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

關閉,BU你可能想追加(A,1,2)'''A'不是'[] [] int'切片。 – 2014-09-03 15:04:09

+1

@JamesHenstridge更正了,我總是忘記了。 – 2014-09-03 15:06:31

+0

@EmilDavtyan 非常感謝! – Foker 2014-09-03 16:31:38

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] 
相關問題