为了账号安全,请及时绑定邮箱和手机立即绑定

Go 函数声明语法

Go 函数声明语法

Go
智慧大石 2021-08-16 19:41:13
我刚刚开始学习Go语言,仍然试图消化一些东西。我写了一个函数add:func add(a int, b int) int {  return a + b}// works finefunc add(a, b) int {  return a + b}// ./hello.go:7: undefined: a// ./hello.go:7: undefined: b// Digested: May be I need to give typefunc 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.
查看完整描述

2 回答

?
四季花海

TA贡献1811条经验 获得超5个赞

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

但是你需要有一个与函数的每个参数相关联的类型,这在最后一个int a, b参数列表中不是这种情况。

顺序始终遵循变量声明规范var type,而不是:type var

 VarSpec     = IdentifierList ( Type  [ "=" ExpressionList ] | "=" ExpressionList ) .

你会总能找到一个类型一个IdentifierLista inta, b int


查看完整回答
反对 回复 2021-08-16
?
小怪兽爱吃肉

TA贡献1852条经验 获得超1个赞

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


查看完整回答
反对 回复 2021-08-16
  • 2 回答
  • 0 关注
  • 204 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信