2013-05-29 43 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