go 函式使用時的注意事項和細節

2021-10-07 21:18:10 字數 1344 閱讀 1461

函式的心餐列表可以時多個,返回值列表也可以是多個

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

函式的命名遵循識別符號命名規範,首字母不能是數字,首字母大寫該函式可以被本包檔案和其他包檔案使用,首字母小寫,將只能被本包檔案使用,其他包檔案不能使用

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

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

如果希望函式內的變數能修改函式外的變數,可以傳入變數的位址&,函式內以指標的方式操作變數。從效果上看類似引用

go函式不支援過載

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

package main

import

("fmt"

)func

getsum

(n1 int

, n2 int

)int

func

main()

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

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

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

案例:type my int //這時my就等價於int來使用

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

支援對函式返回值命名

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

package main

import

("fmt"

)func

cal(n1 int

, n2 int

)(sum int

, sub int

)func

main()

go支援可變引數

支援0到多個引數:func sum(args … int) sum int{}

支援1到多個引數:func sum(n1 int, args … int) sum int{}

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

package main

import

("fmt"

)func

sum(n1 int

, args ...

int)

intreturn sum

}func

main()

Go 結構體使用注意事項和細節

結構體 type point struct 結構體 type rect struct func main point r1有四個int,在記憶體中是連續分布 列印位址 fmt.printf r1.leftup.x 位址 p r1.leftup.y 位址 p r1.rightdown.x 位址 p r...

iostream使用時注意事項

標準io庫在3個頭檔案中定義 iostream是從流中讀寫,fstream是從檔案的讀寫,而sstream是從字串中去讀寫。io物件有乙個很重要的特點,就是不能複製或者賦值。這意味兩點 第一,io物件不能儲存在容器中,第二,形參或者函式的返回值也不能是io型別。如果需要傳遞io物件,則需要使用引用。...

Selectors使用時注意事項

1.serversocketchannel和socketchannel必須配置成非阻塞的 2.每次輪詢後,得到selectionkey後,必須從選擇集裡remove掉 iteratorkeys selector.selectedkeys iterator while keys.hasnext 3.如...