- golang里常規(guī)的類定義一般為如下形式:
type $name struct{
property01 int
property02 int
}
func (t * name) tfunc() {}
- 這里一直有個(gè) 誤解:struct充當(dāng)了其他語言中的class關(guān)鍵字
- 其實(shí)在Golang里袱蜡,類型就是類逻炊,所以我們說是類型的某個(gè)方法互亮,類型實(shí)現(xiàn)了某個(gè)接口。
- 以上定義應(yīng)當(dāng)解讀為 property01是struct類型(別名name)的一個(gè)屬性余素,tfunc是struct類型(別名name)的一個(gè)方法
實(shí)際上method的定義可以依賴于所有的自定義類型豹休。所謂自定義類型,就是通過type語句給一些內(nèi)置類型起了個(gè)"別名"后所定義的新類型桨吊。
type Sex string
func (s *Sex) change(){
if *s == Sex("女") {
*s = Sex("男")
}
}
- 以上定義應(yīng)當(dāng)解讀為 tfunc是string類型(別名Sex)的一個(gè)方法