go中的函数数组语法是什么意思?

时间:2018-09-18 23:54:28

标签: go

var list = []func(*someType) error {
        ...
    }

我是Go语言的新手,我试图了解语法的含义? 函数的返回值是数组吗?

2 个答案:

答案 0 :(得分:5)

这将变量list声明并初始化为slice,其元素是带有签名func(*someType) error的函数。

Go中的切片是用于表示特定类型的数据序列的便捷机制。对于任何元素类型[]T,它们的类型均为T(但请记住,Go没有泛型)。切片仅由其包含的项目类型定义。它的长度不是其类型定义的一部分,并且可以在运行时更改。 (相比之下,Go中的数组是固定长度的-长度为[N]T的元素类型为N,元素类型为T的元素。)

在表面下,一个切片由一个支持数组,一个当前数据的长度和一个容量组成。运行时管理数组的内存分配,以容纳片中的所有数据。

答案 1 :(得分:1)

funcintstring ...

这样的类型

所以它们是示例语法:

var listInt := []int{1,2,3}
var listStr := []string{"1","2","3"}
var listFunc := []func(param anyType) anyType {
    func(param anyType) anyType { ... return new(anyType) },
    func(param anyType) anyType { ... return new(anyType) },
}