把 slice、map 等定义为自定义类型

来源:互联网 发布:virtualbox linux 编辑:程序博客网 时间:2024/06/04 20:31
//本文出自:http://www.oschina.net/news/54760/10-go-technology// 还想对服务器的状态进行检查?或者为每个服务器添加一条数据库记录?没问题,添加以下新方法即可:// func (s Servers) Check()// func (s Servers) AddRecord()// func (s Servers) Len()package mainimport(    "fmt"    "strings")type Server struct {    Name string}type Servers []Server// ListServers 返回服务器列表func ListServers() Servers {    return []Server{        {Name: "Server1"},        {Name: "Server2"},        {Name: "Foo1"},        {Name: "Foo2"},    }}// Filter 返回包含 name 的服务器空的 name 将会返回所有服务器。func (s Servers) Filter(name string) Servers {    filtered := make(Servers, 0)    for _, server := range s {        if strings.Contains(server.Name, name) {            filtered = append(filtered, server)            fmt.Printf("%p\n",&filtered)        }    }    return filtered}func main() {    servers := ListServers()    servers = servers.Filter("")    fmt.Printf("servers %+v\n", servers)}
0 0