Go語言 函式學習篇

2021-07-24 20:06:13 字數 2661 閱讀 4572

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

1

2

3

4

5

6

func getmsg(iint) (rstring)

func說明這個是個函式

getmsg是函式名

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

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

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

1

2

3

4

5

6

7

func getmsg(iint) (rstring, errstring)

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

func readfile(filepathstring)()else

}

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

推薦看這篇部落格:

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(iint)

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

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

g(i + 1)

}

返回了:

1

2

3

4

5

6

7

8

9

10

11

12

calling g.

printinging 0

printinging 1

printinging 2

printinging 3

panicking!

defering 3

defering 2

defering 1

defering 0

recoveredinf 4

returned normallyfromf.

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

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

Go語言函式學習教程

這裡要說一下是go函式和一些其他語言不一樣的地方 1 函式格式不同 複製 如下 func getmsg i int r string func說明這個是個函式 getmsg是函式名 i int 函式接收乙個int引數 r string 函式返回乙個string型別返回值 2 函式可以返回多個返回值 ...

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...