基本用法
最基本的用法為使用func作為宣告函式的關鍵字,後面接上函式名稱(test)及回傳值(string),這裡要注意的是必須指定回傳型態,否則會跳出錯誤訊息”too many arguments to return”
func test() string{
return "Hello"
}
func main(){
fmt.Println(test())
}
>Hello
多個回傳值
golang可以一次回傳多個值,在呼叫的地方必須使用多個變數接收傳回來的值
func test() (string,string){
return "Hello","katsuobushi"
}
func main(){
hlo,name := test()
fmt.Println(hlo , name)
}
>Hello katsuobushi
傳入參數
在函式名稱後的括號內加入一個或多個”變數名稱 變數型態”,以傳入參數
func foo(name string,age int){
fmt.Println(name,age)
}
func main(){
foo("katsuobushi",100)
}
>katsuobushi 100
為回傳值命名
可為回傳變數命名(宣告變數),在回傳時可直接呼叫return就可以了
func foo(str string) (returnStr string) {
returnStr = str
return
}
func main() {
fmt.Println(foo("Hello"))
}
>Hello
類別的方法
這個應該歸在類別裡介紹,但自己曾經搞混過所以在這裡註記下,這是類別裡宣告方法的方式,在函式的前面加上”(變數名稱 *類別)“,即表示宣告該類別的一個方法
在方法中使用變數名稱.方法或變數名稱.屬性表示存取呼叫該方法的物件(本例為co物件)的方法或屬性
假設使用co物件呼叫setCourse方法,則在setCourse方法裡的c即代表co物件,而c.courseID就代表co物件裡的courseID屬性
type course struct {
courseID string
courseTeacher string
}
func (c *course) setCourse(id string, teacher string) {
c.courseID = id
c.courseTeacher = teacher
}
func (c *course) print() {
fmt.Println(c.courseID, c.courseTeacher)
}
func main() {
var co course
co.setCourse("3452", "GolangProgramming")
co.print()
}