首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Go函数声明语法

Go函数声明语法
EN

Stack Overflow用户
提问于 2014-09-23 12:48:04
回答 2查看 1.7K关注 0票数 0

我刚刚开始学习Go语言,还在努力消化一些东西。

我编写了一个函数add,作为:

代码语言:javascript
复制
func add(a int, b int) int {
  return a + b
}
// works fine

func add(a, b) int {
  return a + b
}
// ./hello.go:7: undefined: a
// ./hello.go:7: undefined: b
// Digested: May be I need to give type

func add(a, b int) int {
  return a + b
}
// works fine interestingly 

func add(a int, b) int {
  return a + b
}
// ./hello.go:7: final function parameter must have type

我真的很困惑,或者是因为缺乏知识,无法理解

final function parameter must have type

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-23 13:03:37

我在“你能一次在Go中声明多个变量吗?”中提到了你能一次在Go中声明多个变量吗?:这解释了a, b int

但是您需要有一个与函数的每个参数相关联的类型,这在上一个int a, b参数列表中不是这样的。

顺序总是var type,而不是type var,在变量声明规范之后

代码语言:javascript
复制
 VarSpec     = IdentifierList ( Type  [ "=" ExpressionList ] | "=" ExpressionList ) .

总是在IdentifierLista inta, b int之后找到类型

票数 1
EN

Stack Overflow用户

发布于 2015-05-09 21:14:22

上述任何一项都不完全正确。答案是Go允许您显式地给出每个参数的类型,作为int、b int,或者使用较短的符号,其中列出两个或多个以逗号分隔的变量,以类型结尾。因此,在a,b的情况下,int -a和b都定义为整数类型。您可以指定a,b,c,d,e,f int,在这种情况下,所有这些变量都将被赋予一种int类型。这里没有“未定义”类型。上述声明的(a,b)形式的问题会产生一个错误,因为您根本没有为变量指定任何类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25995539

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档