Function types
函数类型表示了一系列有相同输入参数和返回值列表的函数,未初始化的函数数值是 nil
。
FunctionType = "func" Signature .
Signature = Parameters [ Result ] .
Result = Parameters | Type .
Parameters = "(" [ ParameterList [ "," ] ] ")" .
ParameterList = ParameterDecl { "," ParameterDecl } .
ParameterDecl = [ IdentifierList ] [ "..." ] Type .
参数和返回值列表里,名字(标识符)必须要么全部写明要么全部忽略。如果有写明的话,每个名字表示一个指定类别的参数或者返回值而且全部都必须是非 空 且 唯一 的。如果忽略的话,每个数据类型代表该类型的一个元素。参数跟返回值永远都是写在括号里面,除非只有一个非命名的返回值,才可以没有括号。
函数的最后一个输入参数可能会是前缀为 ...
的数据类型,这样的写法称为 variadic, 它代表零个或者多个同类型的参数。
func()
func(x int) int
func(a, _ int, z float32) bool
func(a, b int, z float32) (bool)
func(prefix string, values ...int)
func(a, b int, z float64, opt ...interface{}) (success bool)
func(int, int, float64) (float64, *[]int)
func(n int) func(p *T)
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。