首页 > 解决方案 > 附加不适用于定义为结构类型切片的命名类型

问题描述

需要重新审视,因为我做的某事,我在这里弄错了。我试图将状态附加到切片,它不起作用

我也尝试使用取消引用

type ServerStatuses []ServerStatus
statuses := new(ServerStatuses)

status := &ServerStatus{
    time:      time,
    available: available,
    url:       url,
}

statuses = append(statuses, *status)

append尽管状态是一个切片,但在这种情况下将不起作用。

标签: goappendslice

解决方案


这与命名类型无关。这是因为statusesis a*ServerStatuses指向 slice的指针,而不是 slice。您只能附加到切片,不能附加到指针。请记住,它new返回一个指向给定类型的指针。如果你用 替换new(ServerStatuses)ServerStatuses{}它可以工作: https: //play.golang.org/p/OYdTbLoVifD


推荐阅读