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)

本文章首发在 LearnKu.com 网站上。

本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。

原文地址:https://learnku.com/docs/go-specificatio...

译文地址:https://learnku.com/docs/go-specificatio...

上一篇 下一篇
贡献者:2
讨论数量: 0
发起讨论 只看当前版本


暂无话题~