切片字节数组以符合 Golang 中参数的结构?
Slicing a byte array to conform to a struct for param in 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 个字节用作输入参数。那样不行。
您可以复制正确类型的数组,例如:
var guid [16]byte
copy(guid[:], SthGuid[1:16])
Get(guid)
或者,作为 Go 1.17,您可以尝试使用切片到数组的转换:
https://tip.golang.org/ref/spec#Conversions_from_slice_to_array_pointer
我有大致这样的东西
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 个字节用作输入参数。那样不行。
您可以复制正确类型的数组,例如:
var guid [16]byte
copy(guid[:], SthGuid[1:16])
Get(guid)
或者,作为 Go 1.17,您可以尝试使用切片到数组的转换:
https://tip.golang.org/ref/spec#Conversions_from_slice_to_array_pointer