我剛剛開始學習Go,並且有些事情引起了我的注意。通過變量訪問Go函數
功能,如:
delete(map, "Answer") // for maps
append(slice, 0) // for slices
len(slice), cap(slice) // again for slices
等。作爲來自C語言的人,我想知道:
1)可以通過變量本身調用這些函數嗎(如map.delete("Answer")
)?
2)這是一種常見的做法(定義一個泛型函數並讓它找出它的類型以及它應該做什麼),還是僅僅用於內置類型。例如,如果我想定義自己的類型,如MyCoolLinkedList
,我應該定義len
並追加型的內部功能,並讓它們稱爲像
list := new(MyCoolLinkedList)
list.len()
,或者我應該確定接收名單,像函數:
len(list)