整型
Nim有以下内置整型: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 。
默认整型是 int 。整型字面值可以用 类型前缀 来指定一个非默认整数类型:
- let
- x = 0 # x是 ``int``
- y = 0'i8 # y是 ``int8``
- z = 0'i64 # z是 ``int64``
- u = 0'u # u是 ``uint``
多数常用整数用来计数内存中的对象,所以 int 和指针具有相同的大小。
整数支持通用操作符 + - * div mod < <= == != > >= 。 也支持 and or xor not 操作符,并提供 按位 操作。 左移用 shl ,右移用 shr 。位移操作符实参总是被当作 无符号整型 。 普通乘法或除法可以做 算术位移 。
无符号操作不会引起上溢和下溢。
无损 自动类型转换 在表达式中使用不同类型的整数时执行。如果失真,会抛出 EOutOfRange 异常(如果错误没能在编译时检查出来)。