定義格式
函數構成代碼執行的邏輯結構。在 Go語言中,兩數的基本組成為:關鍵字 func、函數名、參數列表、返回值、所數體和返回語句。
函數定義說明:
func
:函數由關鍵字func
開始聲明FuncName
:函數名稱,根據約定,數名首字母小寫即為private,大寫即為 public.- 參數列表:函數可以有0個或多個參數,參數格式為:變量名 類型,如果有多個參數通過逗號分隔,不支持默認參數,即不支持 a int =10
- 返回類型:
①上面返回值聲明了兩個變量名 o1和 o2 (命名返回參數),這個不是必須,可以只有類型沒有變量名;
②如果只有一個返回值且不聲明返回值變量,可以省略,包括返回值的括號;
③如果沒有返回值,就直接省略最后的返回信息;
④如果有返回值,必須在函數的內部添加return
語句.
無參無返回值
package mainimport "fmt"func MyFunc() {a := 666fmt.Println("a=", a)
}
func main() {MyFunc()
}
函數的定義可前可后。
有參無返回值
普通參數列表
package mainimport "fmt"func MyFunc01(a int) {a = 111fmt.Println("a=", a)
}func MyFunc02(a, b int) {a = 111fmt.Printf("a=%d,b=%d\n", a, b)
}func main() {MyFunc01(666)MyFunc02(111, 555)
}
- 參數類型一樣的,可以一起定義
不定義參數類型
...type
- 固定參數一定要傳參,不定參數根據需求參數
- 固定參數可以和不定參數一起使用,但是固定參數一定要在前面。
- 不定參數函數之間也可以進行傳參
- 只想把某些參數傳遞給另外一個函數使用可以使用
args[2:]...
表示從args[2]開始(包含本身),把后面所有的元素傳遞過去。
args[2:]
從args[2]開始(包括本身),把后面所有元素傳遞過去;args[:2]
args[0]-args[2] (不包括2),傳遞過去。
無參有返回值
一個返回值
- 只有一個返回值的時候,可以省略
()
,也可以不給返回值起名字,但是推薦還是起一個名字。
多個返回值
這個go語言和c語言不同的地方。
也可以寫為a,b,c=1,2,3
- 注意return后面可以不跟返回值的名字,如果有賦值,就按照賦值返回,否則會直接返回默認值。
- 有返回值,一定要在函數內部添加return語句
有參有返回值
package mainimport "fmt"func MaxAndMin(a, b int) (max, min int) {if a > b {max = amin = b} else {max = bmin = a}return
}func main() {max, min := MaxAndMin(10, 20)fmt.Printf("max=%d,min=%d", max, min)}