Go語言函式學習教程

2022-09-24 21:09:08 字數 1443 閱讀 6268

這裡要說一下是go函式和一些其他語言不一樣的地方

1 函式格式不同

複製** **如下:

func getmsg(i int) (r string)

func說明這個是個函式

getmsg是函式名

(i int) 函式接收乙個int引數

(r string) 函式返回乙個string型別返回值

2 函式可以返回多個返回值

這點和c,php都不一樣,和lua是一樣的

複製** **如下:

func getmsg(i int) (r string, err string)

3 defer的使用

defer的意思是"在函式退出時呼叫",特別用於對檔案進行讀寫操作的時候,需要在open之後要呼叫close操作,將close操作使用defer

複製** **如下:

func readfile(filepath string)() else

}這樣寫的意思是在file.open後不立即呼叫close,當return false的時候呼叫file.close().這樣就有效避免了c語言中的記憶體洩露問程式設計客棧題。

4 比較難理解的:panic,recover和defer

defer的作用前面說得很清楚了。

panic和recover我們就將他們看成是其他語言中的throw和catch

下面這個例子:

複製** **如下:

package main

import "fmt"

func main()

func f()

}()fmt.println("calling g.")

g(0)

fmt.println("returned normally from g.")

}func g(i int)

defer fmt.println("defer in g", i)

fmt.println("printing in g", i)

&nb程式設計客棧sp;  g(i + 1)

}返回了:

複製** **如下:

calling g.

printing in g 0

printing g 1

printing in g 2

printing in g 3

panicking!

defer in g 3

defer in g 2

defer in g 1

defer in g 0

recovered in f 4

returned normally from f.

panic丟擲了資訊,並且跳出函式。recover接受到了資訊,並且繼續處理。

這個例子理解了基本就掌握了recpxlakucover和panic

本文標題: go語言函式學習教程

本文位址:

Go語言 函式學習篇

這裡要說一下是go函式和一些其他語言不一樣的地方 1 2 3 4 5 6 func getmsg iint rstring func說明這個是個函式 getmsg是函式名 i int 函式接收乙個int引數 r string 函式返回乙個string型別返回值 這點和c,php都不一樣,和lua是一...

Go函式學習

1 package main23 import 4 fmt 5 reflect 6 runtime 7 math 8 910 函式11 函式可以返回兩個值。返回多個值時可以起名字 12 返回值型別寫在最後面 13 函式可以作為引數 14 沒有預設引數,可選引數 1516 func eval a,b ...

go基礎學習(6 函式學習

函式正常寫法 簡寫命名返回值 go函式輸入可變引數 函式返回多個值 package main import fmt 函式正常寫法 func sum0 a int b int int 簡寫 func sum1 a,b int int 命名返回值 func sum2 a,b int res int go...