golang中沒有類(class)的概念,但是有結構(struct)的概念。在其他語言(比如c++)中,屬性是與方法繫結在一起的,而在go中屬性與方法是松耦合的。
乙個簡單的結構:
type student struct
方法寫在結構的外面,比如我們要為student物件新增getter和setter,我們應該在student結構外新增如下**:
func (self *student) setname(name string)
func (self *student) setid(id string)
func (self *student) setscore(score int)
func (self *student) name() string
func (self *student) id() string
func (self *student) score() int
繼承是通過在結構裡嵌入其他結構來實現對其他結構的繼承的。比如以下**就是car繼承了object,擁有了object中定義的字段:
package main
import (
"fmt"
)type printer inte***ce
type object struct
type car struct
func (self *car) print()
func main() , "bmw"}
car.print()
}
字段是否對外暴露(公有還是私有)是通過欄位名的大小寫決定的。
多型是通過介面實現的,如果不能確定具體型別,可以先用inte***ce{}型別代替。
golang 物件導向
method的語法如下 func r receivertype funcname parameters results 下面我們用最開始的例子用method來實現 package main import fmt math type rectangle struct type circle struc...
golang 物件導向
package main golang 物件導向 import fmt type相當於 c c 的 typedef拉 type myint int64 type person struct 繼承 匿名欄位person,相當於c c 的繼承拉,student就擁有了person所有的屬性拉,其實c c...
golang 物件導向
method的語法如下 func r receivertype funcname parameters results 下面我們用最開始的例子用method來實現 package main import fmt math type rectangle struct type circle struc...