我试图声明一个全局数组,然后像这样初始化它:
package main
import (
"fmt"
)
var testStrings []string
func main() {
testStrings = [...]string{"apple","banana","kiwi"}
fmt.Println(testStrings)
}
但是我收到错误:"不能在赋值中使用[3]字符串文字(类型[3]字符串)作为类型[]字符串"
如何在不指定大小的情况下声明全局数组?
答案 0 :(得分:5)
符号
...
指定的数组长度等于最大元素索引加一。
这不适用于您的代码,因为testStrings
是slice,而不是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)
}