gpt4 book ai didi

go - uint8 和 byte 之间的隐式类型转换

转载 作者:IT王子 更新时间:2023-10-29 02:25:30 26 4
gpt4 key购买 nike

如 Go 编程语言第 55 页所述:“需要显式转换才能将值从一种类型转换为另一种类型”,即使它们具有相同的基础类型。例如:

type myByte byte

func main() {
var a byte
var b myByte

a = b // Compile error: cannot use b (type myByte) as type byte in assignment
a = byte(b) // OK
}

但是对于 uint8byte,我很惊讶转换是隐式的:

func main() {
var a byte
var b uint8

a = b // OK
b = a // OK
}

为什么?

最佳答案

byteuint8 的别名,在所有方面都等同于 uint8。

来自 GoDoc:

type Byte

byte is an alias for uint8 and is equivalent to uint8 in all ways. It is used, by convention, to distinguish byte values from 8-bit unsigned integer values.

type byte byte // Really: type byte = uint8 (see golang.org/issue/21601)

https://golang.org/pkg/builtin/#byte

关于go - uint8 和 byte 之间的隐式类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49869175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com