热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ReasonML中的整数类型和模块是什么?

如何解决《ReasonML中的整数类型和模块是什么?》经验,为你挑选了1个好方法。

我试图使用Int32库编写一些代码,但我遇到了类型错误:

let x : int = 7;
Int32.abs(x)

This has type:
  int
But somewhere wanted:
  int32

我对此感到有些惊讶,因为在其他语言int中只是一个别名int32.

我的问题是:

Reason ML中可用的整数类型是什么?

使用它们的准则是什么?

每个都有一个模块吗?(我注意到Int32.abs但是没有Int.abs,例如)

glennsl.. 8

这里是可用的各种整数数据类型,它们的类型,相关模块和文字语法的比较:

let int       : int       = Pervasives.abs(42);
let int32     : int32     = Int32.abs(42l);
let int64     : int64     = Int64.abs(42L);
let nativeint : nativeint = Nativeint.abs(42n);

请注意,它Pervasives是自动打开的,因此您不需要像上面那样限定其功能.

ìnt在32位平台上本机为31位,在64位平台上为63位,除非您需要由或提供的精确算术语义int32,否则您将使用该类型.,和所有包含此(或类似)的注释:int64nativeintIn32Int64Nativeint

性能注意:int32类型的值比int类型的值占用更多的内存空间,int32上的算术运算通常比int上的算术运算慢.仅当应用程序需要精确的32位算术时才使用int32.

我希望能回答你的问题.

编辑:当使用BuckleScript编译为Javascript时,这与Reason非常相似,语义略有不同:

int32并且int64表现相同

int 表现得像 int32

nativeint大多数float情况下都会被视为更像整数.

资料来源:https://bucklescript.github.io/docs/en/difference-from-native-ocaml.html#integers



1> glennsl..:

这里是可用的各种整数数据类型,它们的类型,相关模块和文字语法的比较:

let int       : int       = Pervasives.abs(42);
let int32     : int32     = Int32.abs(42l);
let int64     : int64     = Int64.abs(42L);
let nativeint : nativeint = Nativeint.abs(42n);

请注意,它Pervasives是自动打开的,因此您不需要像上面那样限定其功能.

ìnt在32位平台上本机为31位,在64位平台上为63位,除非您需要由或提供的精确算术语义int32,否则您将使用该类型.,和所有包含此(或类似)的注释:int64nativeintIn32Int64Nativeint

性能注意:int32类型的值比int类型的值占用更多的内存空间,int32上的算术运算通常比int上的算术运算慢.仅当应用程序需要精确的32位算术时才使用int32.

我希望能回答你的问题.

编辑:当使用BuckleScript编译为Javascript时,这与Reason非常相似,语义略有不同:

int32并且int64表现相同

int 表现得像 int32

nativeint大多数float情况下都会被视为更像整数.

资料来源:https://bucklescript.github.io/docs/en/difference-from-native-ocaml.html#integers


@Bergi,与动态无关,但是对于所有值都有一个所谓的*统一表示*作为单个单词.这对于有效实现参数多态非常重要,其中类型不固定.
更正:默认的`int`类型在32位平台上有31位,在64位平台上有63位.丢失的位是GC所需的标记位,它启用了未装箱的表示.
推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文概述了JNI的原理以及常用方法。JNI提供了一种Java字节码调用C/C++的解决方案,但引用类型不能直接在Native层使用,需要进行类型转化。多维数组(包括二维数组)都是引用类型,需要使用jobjectArray类型来存取其值。此外,由于Java支持函数重载,根据函数名无法找到对应的JNI函数,因此介绍了JNI函数签名信息的解决方案。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • Android源码深入理解JNI技术的概述和应用
    本文介绍了Android源码中的JNI技术,包括概述和应用。JNI是Java Native Interface的缩写,是一种技术,可以实现Java程序调用Native语言写的函数,以及Native程序调用Java层的函数。在Android平台上,JNI充当了连接Java世界和Native世界的桥梁。本文通过分析Android源码中的相关文件和位置,深入探讨了JNI技术在Android开发中的重要性和应用场景。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 本文是一篇翻译文章,介绍了async/await的用法和特点。async关键字被放置在函数前面,意味着该函数总是返回一个promise。文章还提到了可以显式返回一个promise的方法。该特性使得async/await更易于理解和使用。本文还提到了一些可能的错误,并希望读者能够指正。 ... [详细]
  • Mono为何能跨平台
    概念JIT编译(JITcompilation),运行时需要代码时,将Microsoft中间语言(MSIL)转换为机器码的编译。CLR(CommonLa ... [详细]
  • Introduction(简介)Forbeingapowerfulobject-orientedprogramminglanguage,Cisuseda ... [详细]
  • 寻求更强大的身份和访问管理(IAM)平台的企业正在转向云,并接受身份即服务(IDaaS)的灵活性。要为IAM选择正确的场外解决方案,业务管理人员和IT专业人员必须在实施之前评估安全 ... [详细]
author-avatar
奋斗的小鸟
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有