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

user1820956:

runeGo中的类型定义

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

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

chendesheng :

我用Google搜索并找到了这个

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在golang中,为什么`a:= [] int32(“ hello”)`起作用,而不是`a:= [] int(“ hello”)`?

UInt32,Int32和Float32的字节类型是什么?

为什么不使用uint32而不是int64?

C# 中的一些奇怪的东西 - UInt32 vs Int32

为什么&运算符返回Int32而不是bool?

将uint32写入uint64不是原子的。为什么?

当变量可以时,不能将int32 const强制转换为uint32的原因是什么?

从 UInt32 转换为 Int32 时保持位

是将int32强制转换为uint32吗?

C#MongoDB尝试将enum:uint32转换为int32并崩溃

为什么将CFBit定义为UInt32?

uint32,int16,uint8 ..为什么这些常用数据类型未纳入标准

为什么服务堆栈返回Int64而不是Int32?

为什么存在Convert.ToInt32(Int32)?

为什么即使实际值在uint32范围内,也无法将interface {}转换为uint32

为什么int32 / int64比int慢?

为什么int32(0)不能反射.DeepEqual在Golang中键入零?

将“字符串对象”转换为 Int32 数组,然后转换为 Uint32 数组

将uint转换为Int32

C中*((volatile UINT32 *)(a))的含义

在java中构造uint32

为什么UInt32(stringArray.count)在函数中计数错误,而在Swift Playground中单独更正?

在泛型方法中与Int32类型一起使用时,无法从用法中推断出UInt32和UInt64类型

为什么Color在字节上使用Int32?

为什么不将 0 转换为 *int32?

为什么 BSON 不使用 uint32_t 而不是 int32_t 作为文档长度

为什么首选uint32_t而不是uint_fast32_t?

为什么有时仅将memcmp(a,b,4)优化为uint32比较?

在Kotlin中,将Long转换为uint32 ByteArray并将Int转换为uint8的最干净方法是什么?