Golang interface 中是否可以声明属性?
在 golang 中,interface 定义了一组方法,用于定义对象的行为。那么,interface 是否可以除了声明方法外,还声明属性呢?
答案:
golang interface 仅包含方法,而不包含属性。属性通常声明在结构体内。
示例:
下例中,无法在 router interface 中声明 servicename 属性:
type router interface { servicename string route(msgb []byte) error }
相反,应将 servicename 属性声明在结构体内,如下所示:
type Router struct { ServiceName string } func (r Router) Route(msgB []byte) error { // ... }