Go語言作為編程語言中的后起之秀,在博采眾長的同時(shí)又不失個(gè)性,在注重運(yùn)行效率的同時(shí)又重視開發(fā)效率,不失為一種好的開發(fā)語言。在go語言中,沒有類的概念,但是仍然可以用struct+interface
來實(shí)現(xiàn)類的功能,下面的這個(gè)簡單的例子演示了如何用go來模擬c++中的多態(tài)的行為。
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;i2;i++ {
m[i].sayHello()
}
}