一尘不染

为什么golang中的符文是int32而不是uint32的别名?

go

runeGo中的类型定义

的别名,在所有方面int32都等效int32。按照惯例,它用于区分字符值和整数值。

如果打算使用这种类型来表示字符值,为什么Go语言的作者不使用uint32而不是int32?当rune值是负数时,他们如何期望在程序中处理该值?另一个类似的类型byteuint8(而不是int8)的别名,这似乎是合理的。


阅读 635

收藏
2020-07-02

共1个答案

一尘不染

我用Google搜索并找到了这个

这已经被问过好几次了。符文占用4个字节,而不仅仅是一个字节,因为它应该存储unicode码点,而不仅仅是ASCII字符。像数组索引一样,数据类型是带符号的,因此您可以在对那些类型进行算术运算时轻松地检测到溢出或其他错误。

2020-07-02