2013-05-29 47 views
7

我是Go编程语言的完整初学者,我试图定义一个叫做addStuff的Go函数的参数类型,它简单地添加两个整数并返回它们的总和,但我看到当我尝试编译功能以下错误:在Go中设置函数参数类型

prog.go:6: undefined: a 
prog.go:6: undefined: b 
prog.go:7: undefined: a 
prog.go:7: undefined: b 
prog.go:7: too many arguments to return 
prog.go:11: addStuff(4, 5) used as value 

这里是生成此编译器错误代码:

package main 

import "fmt" 
import "strconv" 

func addStuff(a, b){ 
    return a+b 
} 

func main() { 
    fmt.Println("Hello," + strconv.Itoa(addStuff(4,5))) 
} 

我在做什么错在这里,什么是设置正确的方法Go的参数类型?

+4

考虑到鸭型语言的数量,这是(在我看来)一个有效的问题。 – thwd

回答

26
func addStuff(a int, b int) int { 
    return a+b 
} 

这将使intab参数,并有函数返回一个int。另一种方法是func addStuff(a, b int) int,它也将使ab型参数的类型为int

我强烈推荐A Tour of Go,它讲授了Go的基础知识。

+1

这也可以写成'func addStuff(a,b int)int' – thwd

+4

@jnml你知道你可以编辑答案,对不对? (另外,阅读超出代码示例可能会有所帮助。) – 2013-05-29 23:12:52

+0

我会编辑您的答案,只是为了修正拼写错误,不要改变您的想法。是的,我在写下我以前的评论前已经全部阅读了你的答案。你将'替代'与'惯用代码'混为一谈。 – zzzz