//本文出自:http://www.oschina.net/news/54760/10-go-technology
// 还想对服务器的状态进行检查?或者为每个服务器添加一条数据库记录?没问题,添加以下新方法即可:
// func (s Servers) Check()
// func (s Servers) AddRecord()
// func (s Servers) Len()
package main
import(
"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)
}
把 slice、map 等定义为自定义类型
最新推荐文章于 2020-06-19 22:29:07 发布