函式的心餐列表可以時多個,返回值列表也可以是多個
形參列表和返回值列表的資料型別可以是值型別和引用型別
函式的命名遵循識別符號命名規範,首字母不能是數字,首字母大寫該函式可以被本包檔案和其他包檔案使用,首字母小寫,將只能被本包檔案使用,其他包檔案不能使用
函式中的變數是區域性的,函式外不生效
基本資料型別和陣列預設都是值傳遞的,即進行值拷貝,在函式內修改,不會影響到原來的值
如果希望函式內的變數能修改函式外的變數,可以傳入變數的位址&,函式內以指標的方式操作變數。從效果上看類似引用
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.如...