函式的注意事項

2022-08-27 13:03:10 字數 2227 閱讀 3339

1)函式的形參列表可以是多個,返回值列表也可以是多個。

2)形參列表和返回值列表的資料型別可以是值型別和引用型別

3)函式的命名遵循識別符號命名規範,首字母不能是數字,首字母大寫該函式可以被本報檔案和其它包檔案使用,類似public,首字母小寫,只能被本包使用,其它包檔案不能使用,類似private

4)函式中的變數是區域性的,函式外不生效

func test()

func main()

5)基本資料型別和陣列預設都是值傳遞的,即進行值拷貝。在函式內修改,不會影響到原來的值。

func test02(n1 int)

func main()

[shell] go run main.go

test02() n1 = 30

main() num = 20

6)如果希望函式內的變數能修改函式外的變數(指的是預設以值傳遞的方式的資料型別),可以傳入變數的位址&,函式內以指標的方式操作變數。從效果上看類似引用

func test03(n1 *int)

func main()

[shell]go run main.go

test03() n1 = 30

main() num = 30

上面**的示意圖:

7)go函式不支援函式過載:

8)在go中,函式也是一種資料型別,可以賦值給乙個變數,則該變數就是乙個函式型別的變數了。通過該變數可以對函式呼叫。

func getsum(n1 int, n2 int) int

func main()

9)函式既然是一種資料型別,因此在go中,函式可以作為形參,並且呼叫!

10)為了簡化資料型別定義,go支援自定義資料型別

基本語法: type 自定義資料型別名 資料型別 // 理解:相當於乙個別名

案例:type myint int // 這時 myint 就等價 int 來使用了。

案例:type mysum func (int, int) int // 這時 mysum 就等價 乙個 函式型別 func (int , int) int

例子1:

func main()

例子2:

func getsum(n1 int, n2 int) int

type myfuntype func(int, int) int   //這時這個myfuntype就是func(int,int) int 型別

func myfun2(funvar myfuntype, num1 int, num2 int) int

func main()

11)支援對函式返回值命名

func getsumandsub(n1 int, n2 int) (sum int, sub int)

func main()

12)使用 _ 識別符號,忽略返回值

func cal(n1 int, n2 int) (sum int, sub int)

func main()

13) go支援可變引數

//支援0到多個引數

func sum(args... int) sum int

//支援1到多個引數

func sum(n1 int, args... int) sum int

說明:(1) args 是slice(切片),通過 args[index] 可以訪問到各個值。

(2) 案例演示:編寫乙個函式sum,可以求出 1 到多個int的和

(3) 如果乙個函式的形參列表中有可變引數,則可變引數需要放在形參列表的最後,否則語法是不通過的。

**演示:

func sum(n1 int,args... int) int

return sum

}func main()

inline函式注意事項

1.在類中定義這種函式 class classname 如果在類中直接定義,不需要用inline修飾,編譯器自動化為 內聯函式 此說法在 c primer 中提及 2.在類外定義前加inline 關鍵字 class account 與1相同 double getbalance 在類中宣告 doubl...

memset函式注意事項

memset 函式是記憶體賦值函式,用來給某一塊記憶體空間進行賦值的。其原型是 void memset void dst,int val,size t size 使用時在檔案頭加上 include stdlib.h dst是目標起始位址,val是要賦的值,size是要賦值的位元組數。例1 char ...

printf函式注意事項

如果m為負數,則右對齊 右側補空白 printf 5d 88 輸出結果 88 如果m為正數,則左對齊 左側補空白 printf 5d 88 輸出結果 88 0md 表示,位數不足部分補 0 printf 05d 88 輸出結果 00088 常用於日期,處理等 printf f 1.0 3 輸出結果 ...