Go語言學習筆記(四) 函式

2021-08-28 11:41:31 字數 1639 閱讀 3315

func function_name ([parameter list]) [return_types]

func num(par1,par2 int) int函式建立完成後,可以在main函式中呼叫,如上面的**,給函式傳遞相應的引數並獲得返回值即可。

以上例項在 main() 函式中呼叫 num()函式,執行結果為:

兩者之和為:54
函式可以有多個返回值(函式的返回值和引數沒有關係),但通常情況下都是有輸入才有輸出;

package main

import "fmt"

func main()

func swap(a int,b string) (string,int)

返回結果:

d的值為: 39

c的值為: test

和其他語言一樣,go語言的引數分為:實參和形參,呼叫函式時引數傳遞型別分為:值傳遞和引用傳遞

傳遞型別

描述值傳遞

值傳遞是指在呼叫函式時將實際引數複製乙份傳遞到函式中,這樣在函式中如果對引數進行修改,

將不會影響到實際引數。

引用傳遞

引用傳遞是指在呼叫函式時將實際引數的位址傳遞到函式中,那麼在函式中對引數所進行的修改,

將影響到實際引數。

函式定義後可作為值來使用

例項

package main

import (

"fmt"

"math"

)func main()

/* 使用函式 */

fmt.println(getsquareroot(13))

}

輸出結果:

3.605551275463989
閉包是匿名函式,可在動態程式設計中使用;go語言支援匿名函式,可作為閉包。匿名函式時乙個「內聯」語句或者表示式。匿名函式的優越性在於可以直接使用函式內的變數,不用宣告。

例項

package main

import "fmt"

func getsequence() func() int

}func main()

返回結果:

123

12

方法就是乙個包含了接受者的函式,接受者可以是命名型別或者結構體型別的乙個值或者是乙個指標。所有給定型別的方法屬於該型別的方法集。

格式:

func (variable_name variable_data_type) function_name() [return_type]

variable_name:引數名稱

variable_data_type:引數型別

例項

package main

import (

"fmt"

)type square struct

func (sl square) getarea() float64

func main()

輸出結果為:

area of square(sl) =  12.25

Go語言學習筆記 四

a.字串底層就是乙個byte陣列,所以可以和byte型別互相轉換 b.字串之中的字元是不能修改的,想要修改只能用byte切片來修改 1 package main2 3 import 4 fmt 5 6 7 func teststring 13 定義byte切片14 var byteslice byt...

go語言學習筆記 函式

go語言的函式定義更像是python和c語言的結合體,並且也有不定引數的傳參以及位址傳參方式,非常強大。下面舉一些例子來詳細說明 無參無返回值函式 func myfunc 有參無返回值函式 func myfunc1 a int b int 如果同樣型別,可以簡寫成以下內容 func myfunc2 ...

Go語言學習筆記 函式

函式 函式是各個語句指令的集合,可以實現指定的功能,可以重複使用 定義 func 函式名 引數名 引數型別 返回值名 返回值型別 func x,y int 10,20 匿名函式自呼叫,在後面加上括號簡單來說就是 閉包 函式 匿名函式 引用環境 func adder func int int defe...