作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
如 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
}
但是对于 uint8
和 byte
,我很惊讶转换是隐式的:
func main() {
var a byte
var b uint8
a = b // OK
b = a // OK
}
为什么?
最佳答案
byte 是 uint8 的别名,在所有方面都等同于 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)
关于go - uint8 和 byte 之间的隐式类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49869175/
我是一名优秀的程序员,十分优秀!