go 函式介紹

2022-05-19 14:37:23 字數 2514 閱讀 2317

1. 定義:有輸入、有輸出,用來執行乙個指定任務的**塊

func functionname([parametername type]) [returntype] 

//其中引數列表和返回值列表是可選

無引數和返回值的函式

func functionname()

func test1()

有引數又返回值的函式

func sumtwo(a int, b int) int

如何連續的一系列引數的型別是一樣,前面的型別可以不寫,例如:

func add(a, b int) int

func sumsub(a, b int) (int, int

)

函式呼叫

func add(a, b int) int

func main()

多返回值和可變引數

多返回值

func calc(a, b int) (int, int

) func main()

對返回值進行命名

func calc(a, b int) (sum int, sub int

) func main()

_識別符號

返回多個值的時候 有的值不想接受就可以用_

func calc(a, b int) (sum int, sub int

) func main()

可變引數

// 可以傳入0個或者多個引數 

func calc_v1(b …int) (sum int, sub int

) // a 必傳

func calc_v2(a

int, b …int) (sum int, sub int

) // a,b 必傳

func calc_v3(a

int, b int, c …int) (sum int, sub int

)

func test4(b ...int) int

return

sum}

defer 語句 在函式執行完以後才開始執行, 多個defer語句遵循 堆疊的原則,即後進先出,先進後出

func calc_v1(b …int) (sum int, sub int

)

多個defer語句,遵循棧的特性:先進後出

func calc_v1(b …int) (sum int, sub int

) /*

defer2

defer1

*/

defer 舉例

package main

import

"fmt

"func defer1()

/*------------------2

-----------------3

----------------1

*/func testdefer1()

fmt.println(

"go-----------")

}/*go-----------

this is 9

this is 8

this is 7

this is 6

this is 5

this is 4

this is 3

this is 2

this is 1

this is 0

*/func testdefer2()

/*over -----------

defer test i=5

*/func main()

1. close    主要用來關閉channel

2.len:用來求長度,比如string、array、slice、map、channel

3. new:用來分配記憶體,主要用來分配值型別,比如int、struct。返回的是指標

4. make:用來分配記憶體,主要用來分配引用型別,比如chan、map、slice

6.panic和recover:用來做錯誤處理

Go語言介紹

2 go安裝 2.2 解壓 3 hello world 4 執行方法 go是一門編譯型語言,go語言的工具鏈將源 及其依賴轉換成計算機的機器指令 譯註 靜態編譯 go 是乙個開源的程式語言,它能讓構造簡單 可靠且高效的軟體變得容易。go 語言被設計成一門應用於搭載 web 伺服器,儲存集群或類似用途...

Go語言介紹

go語言是谷歌2009發布的第二款開源程式語言。go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用go編譯的程式可以媲美c或c 的速度,而且更加安全 支援並行程序。1 可直接編譯成機器碼,不依賴其他庫,glibc的版本有一定要求,部署就是扔乙個檔案上去就完成了。2 靜態型別語言,但是有動...

Go基礎程式設計 Go語言介紹

2009年11月10日,go語言正式成為開源程式語言家庭的一員。go語言 或稱golang 是雲計算時代的c語言。go語言的誕生是為了讓程式設計師有更高的生產效率,go語言專門針對多處理器系統應用程式的程式設計進行了優化,使用go編譯的程式可以媲美c或c 的速度,而且更加安全 支援並行程序。開發人員...