golang中的全局数组

时间:2015-10-01 19:08:19

标签: arrays go global-variables

我试图声明一个全局数组,然后像这样初始化它:

package main

import (
  "fmt"
)
var testStrings []string

func main() {
  testStrings = [...]string{"apple","banana","kiwi"}
  fmt.Println(testStrings)
}

但是我收到错误:"不能在赋值中使用[3]字符串文字(类型[3]字符串)作为类型[]字符串"

如何在不指定大小的情况下声明全局数组?

2 个答案:

答案 0 :(得分:5)

来自Go specification

  

符号...指定的数组长度等于最大元素索引加一。

这不适用于您的代码,因为testStringsslice,而不是array(请参阅the difference between arrays and slices)。删除...将修复您的计划:

testStrings = []string{"apple","banana","kiwi"}

答案 1 :(得分:4)

[...]表示array

[]表示slice

改变一个。例如:

package main

import (
    "fmt"
)

var arrtestStrings [3]string
var slicetestStrings []string

func main() {
    arrtestStrings = [...]string{"apple", "banana", "kiwi"}
    slicetestStrings = []string{"apple", "banana", "kiwi"}
    fmt.Println(arrtestStrings)
    fmt.Println(slicetestStrings)
}