Go語言的函數(shù)
Go語言中的函數(shù)
函數(shù)的用法
func function_name( [parameter list] ) [return_types] {
函數(shù)體
}
package main
import "fmt"
func main() {
var x int = sumTwoNumber(3,4)
fmt.Printf("%d", x)
}
/**函數(shù)名 (參數(shù),參數(shù)) 返回類型 **/
func sumTwoNumber(a, b int) (int) {
/* 定義局部變量 */
var result int;
result = a + b
return result
}
無參數(shù)無返回值的函數(shù)
//無參數(shù)無返回值的函數(shù)
func NoAll()() {
fmt.Printf("我是一個什么也沒有的函數(shù)\n")
}
無參數(shù)有返回值的函數(shù)
func NoParam() (string) {
return "我是一個無參數(shù)但是有返回值的函數(shù)"
}
有參數(shù)有返回值的函數(shù)
// 求和
func sumTwoNumber(a, b int) (int) {
/* 定義局部變量 */
var result int;
result = a + b
return result
}
多返回值的函數(shù)
/**多個返回值**/
func swapStrings(oldString01,oldString02 string) (string,string) {
return oldString02 ,oldString01
}
返回值的命名
在go語言中可以對返回值的參數(shù)進行命名
package main
import "fmt"
func main() {
var a string
var b bool
a,b = Inc()
fmt.Printf("%v:%v\n", a,b)
}
func Inc()(value string,ok bool){
m :=make(map[string]string)
m["address"]="地址"
value,ok = m["address"]
return
}
Go函數(shù)的閉包
Go 語言支持匿名函數(shù),可作為閉包。匿名函數(shù)是一個"內(nèi)聯(lián)"語句或表達式。匿名函數(shù)的優(yōu)越性在于可以直接使用函數(shù)內(nèi)的變量,不必申明。
func main() {
var param int =0
FunctionA:=GetFunction()
param =FunctionA()
fmt.Printf("%d\n", param)
}
/**函數(shù)的閉包**/
func GetFunction() (func () (int) ) { //可以簡寫 func GetFunction() func () (int) {...}
var i int = 0
return func()(int){
var result int = i
result++
return result
}
}
Go語言泛型函數(shù)
func AddFloat(a, b float64) float64
func Add[T any](a, b T) T
comparable 包
Go 內(nèi)置提供了一個 comparable 約束,表示可比較的。參考下面代碼:
?
/* 遍歷的泛型函數(shù) */
func ForEach[T comparable] (Array[] T)(){
for key, value := range Array {
fmt.Printf("第%d個值:%v\n", key,value)
}
}
Go語言的標準輸入輸出
package main
import (
"fmt"
)
func main() {
var str string
fmt.Scanln(&str)
fmt.Printf("INPUT :%s\n", str);
}
浙公網(wǎng)安備 33010602011771號