1. 结构体继承接口,必须实现所有方法,否则该类不能正常使用
例如:
func NewServer(name string)ziface.IServer{
s := &Server{
Name :name,
IPVersion:"tcp4",
IP: "127.0.0.1",
Port : 8999,
}
return s
Server 结构体,为实现ziface.IServer接口中的所有方法,在return时,会报错:
# zinx/znet
..\..\zinx\znet\server.go:81:2: cannot use s (type *Server) as type ziface.IServer in return argument:
*Server does not implement ziface.IServer (missing Serve method)
Compilation finished with exit code 2
2.
Go语言通过首字母的大小写来控制访问权限。无论是方法,变量,常量或是自定义的变量类型,如果首字母大写,则可以被外部包访问,反之则不可以。
而结构体中的字段名,如果首字母小写的话,则该字段无法被外部包访问和解析,比如,json解析。
3. golang中的相对路径是指所建工程的同级目录,并不是当前可执行go文件的路径,详见https://blog.csdn.net/shengzang1998/article/details/89293903