切片字节数组以符合 Golang 中参数的结构?

我有大致这样的东西


type Guid [16]byte


type Payload struct {

    ....

    SthGuid  [17]byte

}



func (h *...) Get(guid Guid) (... error) {


}

我想用 SthGuid 的最后 16 个字节调用 Get。例如,


Get(PayloadInstance.SthGuid[1:16]))

无法将 SthGuid[1:16]([]byte 类型的值)转换为 Guid


我正在尝试调用 SthGuid[1:] 对第一个字节进行切片并将最后 16 个字节用作输入参数。那样不行。


繁华开满天机
浏览 79回答 1
1回答

犯罪嫌疑人X

您可以使用正确的类型复制数组,例如:var guid [16]bytecopy(guid[:], SthGuid[1:16])Get(guid)或者,作为 Go 1.17,您可以尝试使用切片到数组的转换:https://tip.golang.org/ref/spec#Conversions_from_slice_to_array_pointer
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go