整型

Nim有以下内置整型: int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64

默认整型是 int 。整型字面值可以用 类型前缀 来指定一个非默认整数类型:

  1. let
  2. x = 0 # x是 ``int``
  3. y = 0'i8 # y是 ``int8``
  4. z = 0'i64 # z是 ``int64``
  5. u = 0'u # u是 ``uint``

多数常用整数用来计数内存中的对象,所以 int 和指针具有相同的大小。

整数支持通用操作符 + - * div mod < <= == != > >= 。 也支持 and or xor not 操作符,并提供 按位 操作。 左移用 shl ,右移用 shr 。位移操作符实参总是被当作 无符号整型 。 普通乘法或除法可以做 算术位移 。

无符号操作不会引起上溢和下溢。

无损 自动类型转换 在表达式中使用不同类型的整数时执行。如果失真,会抛出 EOutOfRange 异常(如果错误没能在编译时检查出来)。