【问题标题】:How to get minimum and maximum value of each type in elixir如何获取elixir中每种类型的最小值和最大值
【发布时间】:2015-01-23 00:54:01
【问题描述】:

如何获取elixir中每种类型的最小值和最大值?例如整数、浮点数和字符串的最大可能长度。

我知道在 C 中它在 limits.h 中定义为 INT_MININT_MAX 等等。关于 elixir 中这些类型的限制的文档在哪里?

【问题讨论】:

    标签: elixir


    【解决方案1】:

    Elixir(实际上是 Erlang)使用 bignum arithmetic,这是一种用于计算机科学的算术,其中(引用 Wikipedia)

    对精度位数仅受主机系统可用内存限制的数字执行计算

    在 Erlang 文档中有 a page 讨论了 Erlang VM 的限制(例如,原子最多可以有 255 个字符);如您所见,如果您查看该页面,甚至没有提到整数限制。

    Erlang/Elixir 中的整数仅受系统可用内存的限制,因此它们的大小实际上没有限制

    对于二进制文件(字符串),我将仅引用我上面链接的页面所说的内容:

    在 Erlang 的 32 位实现中,536870911 字节是可以使用位语法构造或匹配的最大二进制文件。 (在 64 位实现中,最大大小为 2305843009213693951 字节。)如果超出限制,位语法构造将失败并出现 system_limit 异常,而任何匹配太大二进制文件的尝试都将失败。从 R11B-4 版本开始强制执行此限制;在早期版本中,对太大二进制文件的操作通常会失败或给出不正确的结果。在 Erlang/OTP 的未来版本中,创建二进制文件的其他操作(例如 list_to_binary/1)可能也会强制执行相同的限制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 2021-12-04
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      相关资源
      最近更新 更多