前言
Go語言作為編程語言中的后起之秀,在博采眾長的同時又不失個性,在注重運行效率的同時又重視開發效率,不失為一種好的開發語言。在go語言中,沒有類的概念,但是仍然可以用struct+interface
來實現類的功能,下面的這個簡單的例子演示了如何用go來模擬c++中的多態的行為。
示例代碼
package main import "os"import "fmt" type Human interface { sayHello()} type Chinese struct { name string} type English struct { name string} func (c *Chinese) sayHello() { fmt.Println(c.name,"說:你好,世界")} func (e *English) sayHello() { fmt.Println(e.name,"says: hello,world")} func main() { fmt.Println(len(os.Args)) c := Chinese{"汪星人"} e := English{"jorn"} m := map[int]Human{} m[0] = &c m[1] = &e for i:=0;i<2;i++ { m[i].sayHello() }}
總結
從上面的例子來看,在go中實現類似C++中的多態可謂是非常的簡單,只要實現相同的接口即可。
新聞熱點
疑難解答