go - 附加不适用于定义为结构类型切片的命名类型
问题描述
需要重新审视,因为我做的某事,我在这里弄错了。我试图将状态附加到切片,它不起作用
我也尝试使用取消引用
type ServerStatuses []ServerStatus
statuses := new(ServerStatuses)
status := &ServerStatus{
time: time,
available: available,
url: url,
}
statuses = append(statuses, *status)
append
尽管状态是一个切片,但在这种情况下将不起作用。
解决方案
这与命名类型无关。这是因为statuses
is a*ServerStatuses
是指向 slice的指针,而不是 slice。您只能附加到切片,不能附加到指针。请记住,它new
返回一个指向给定类型的指针。如果你用 替换new(ServerStatuses)
,ServerStatuses{}
它可以工作: https: //play.golang.org/p/OYdTbLoVifD