這裡要說一下是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...