go語言中的函式

2021-09-08 04:35:46 字數 1281 閱讀 3313

package main;

import "fmt"

func main() ;

//這裡傳入的是乙個slice,但外部變數確改變了,說明是位址拷貝。

c(d);

fmt.println(d);

e := 2;

//這裡把e的位址傳遞過去

d(&e);

fmt.println(e);

//函式e賦值給f

f := e;

f();

//匿名函式

g := func() ;

g();

//使用閉包

h := f(66);

//兩次呼叫都使用了66

fmt.println(h(66));

fmt.println(h(88));

//呼叫g函式,defer反向呼叫

g();

h();

//呼叫i函式

i();

}//go函式不支援巢狀,過載和預設引數

//定義函式

//func 函式名(引數列表) (返回值)

func a(a int, b int, c int) (int, int, int)

//不定長變參,必須作為引數列表最後的引數

//傳入的是乙個slice

func b(a ...int)

}//傳遞slice

func c(a int)

}//傳遞指標

func d(a *int)

//函式也是乙個型別

func e()

//閉包

//返回值是乙個函式

func f(a int) (func(int) int) ;

}//defer執行方式類似其它語言中的析構函式

//在函式體執行結束後,按照呼叫順序的相反順序逐個執行

//常用於資源清理,檔案關閉,解鎖

func g()

func h() ();

} //這裡的輸出就跟上面的不一樣,輸出2,1,0

for i := 0; i < 3; i++ (i); }}

//go裡面沒有異常機制,但有panic/recover來處理錯誤

//panic可以在任何地方引發,但recover只在defer呼叫的函式中有效

func i()

func j()

func k()

}();

panic("panic in func k");

}func m()

Go語言中的函式

函式就是一段 的封裝,把一段抽象的邏輯封裝成乙個函式,給他起個名,每次需要用到的時候直接呼叫函式名就可以。基本語法 func 函式名 形式引數 形式引數型別 返回值 返回值型別 乙個函式的返回值可以有乙個,可以有多個,也可以沒有返回值。package main import fmt func add...

go 語言中的繼承

go 語言中可以通過匿名field來實現繼承的效果,type t1 struct func t t1 log func t t1 print type t2 struct t2 t2 可以通過t2.log 直接訪問t1的method,就像物件導向的繼承之後一樣訪問,不過這裡要注意的傳遞到log的是t...

Go語言中的常量

常量,一經定義不可更改的量。功能角度看,當出現不需要被更改的資料時,應該使用常量進行儲存,例如圓周率。從語法的角度看,使用常量可以保證資料,在整個執行期間內,不會被更改。例如當預處理器的架構型別,可以保證不被更改。語法如下 const 常量名 可選的型別 常量值 const c1 int 1000g...