scala:将 null 分配给原语

2023-12-26

我试图将 null 分配给一个 Double 变量,如下所示:

var foo = 0.0
foo = null

但是,这会出现 null 无法隐式转换为 Double 的错误

所以我这样做:

foo = null.asInstanceOf[Double]

然而 foo 的新值是 0.0

如何将值设置为空?


你不能。Double是值类型,只能赋值null到引用类型。相反,Scala 编译器替换了null默认值为 0.0。

请参阅中的默认值SLS 4.2 http://www.scala-lang.org/files/archive/spec/2.11/04-basic-declarations-and-definitions.html:

default  type
0        Int or one of its subrange types
0L       Long
0.0f     Float
0.0d     Double
false    Boolean

您不能将 Java 原语分配给null, 任何一个。而 Scala 的Double并不是真正的原语(它实际上是 Scala 中的一个类),它需要编译为double在Java字节码中。相反,你应该使用Option[Double]如果你想表示一个完全缺失的值,并尝试never use null在斯卡拉。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scala:将 null 分配给原语 的相关文章

随机推荐

  • 从远程 SQLite 数据库复制表?

    有没有办法将数据从一个远程 SQLite 数据库复制到另一个 我在两台服务器上完成了文件复制 但是 一些更改会记录在每个服务器本地的 SQLite 数据库中 为了使文件复制正常工作 我需要复制一个表的内容并将其输入到另一系统上的表中 我知道
  • 如何保护database.yml?

    在 Ruby on Rails 应用程序中 database yml 是一个存储数据库凭据的纯文本文件 当我部署 Rails 应用程序时 我的 Capistrano 中有一个部署后回调 在应用程序的 config 目录中创建到 databa
  • 如何在Ubuntu中生成核心转储文件[重复]

    这个问题在这里已经有答案了 我想知道如何在 Ubuntu 中生成核心转储文件 我使用的是 Ubuntu 8 04 1 和 gcc 编译器 4 2 3 我编写了一个简单的 C 程序来生成核心转储 我已经编译了该程序 如 gcc g badpo
  • 从 StructureMap 获取的 HttpContext 上的空用户

    好吧 我之前的问题 设置有太多变量 所以我将其精简为最基本的组件 给出使用 StructureMap3 的以下代码 IoC setup For
  • 回发或回调参数无效。为什么?

    所以我得到了例外 回发或回调参数无效 使用启用事件验证 在配置或 在 页 出于安全目的 这 功能验证参数 回发或回调事件发起 从服务器控制 最初渲染它们 如果数据 是有效且预期的 使用 ClientScriptManager Registe
  • libreoffice 大量文本颜色更改

    有没有办法更改 LibreOffice 或 Openoffice 中文本中所有出现的特定颜色 是 光标位于find box hit more options 在里面Search Replace对话 点击 Format select Font
  • 如何在Windows 7中设置Python路径[重复]

    这个问题在这里已经有答案了 我尝试在 Windows 7 中设置 python 的路径 但我不能这样做 我去 My Computer gt Properties gt Advanced gt Environment Variables 但我
  • 使用空格而不是制表符进行缩进的客观原因是什么?

    根据 PSR 2 标准使用空格而不是制表符来缩进文件是否有客观原因 有人可以提供 facts 参考 具体的专业知识 PSR 2 标准基于哪个 PSR 2 标准的作者考虑的不仅仅是 外观和感觉 不仅仅是基于意见的东西 而且很多人很难理解为什么
  • 将 Excel 导入 Rails 应用程序

    我正在创建一个供个人使用的小型 Rails 应用程序 并且希望能够上传 Excel 文件以便稍后进行验证并添加到数据库中 我之前曾对 csv 文件进行过此操作 但此后这已变得不切实际 有谁知道使用 roo 或电子表格 gem 上传文件 向用
  • 带颜色编码的 vb.net/C# 代码编辑器[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何带有颜色编码的 winforms 源代码编辑器控件 首选 开源 我好像记得以前遇到过类似的事情
  • PHP套接字服务器,检查客户端是否还活着

    我有一个 php 服务器正在监听 1 个 c 客户端 当连接建立后 它会一直保持活动状态 直到客户端发送 退出 命令来终止 PHP 服务器 但是 当 C 客户端在没有 退出 命令 即 单击 Windows 窗体中的关闭 x 按钮 的情况下断
  • 要包含或包含自动生成的依赖项?

    我喜欢用g MM自动构建我的依赖项的功能 我这样做的方法如下 include ALLOBJ o d d cxx echo making dependencies for lt g MM CXXFLAGS lt o sed i s o g 基
  • 分配时出现 JPEG 错误 #42

    为什么我不能直接将 MemoryStream 分配给图片 下面我发布了两种将 MemoryStream 分配给 TImage 的方法 方法 1 不起作用 方法 2 起作用 为什么 谢谢 山姆 方法 1 此方法返回 JPEG 错误 42 Va
  • jax-ws webservice 的端点始终是 localhost

    我真的需要你的帮助 我读到 jax ws web 服务的 wsdl 将为每个请求动态生成 这样 soap 端点等地址将被调整为请求 url 就我而言 无论是内部请求还是外部请求 地址始终引用 localhost 8080 某人知道我该如何处
  • C++ Linux 最快的时间测量方法(比 std::chrono 更快)?包含基准

    include
  • 为大型 URI 配置 Nginx

    我有一个很大的 URI 我正在尝试配置 Nginx 来接受它 URI参数长度为52000个字符 大小为52kb 我尝试过在没有 Nginx 的情况下访问 URI 效果很好 但是当我使用 Nginx 时 它给了我一个错误 414 请求 URI
  • 如何生成 3 列列表?

    我必须生成一个 3 列的项目列表 类似于此页面上不同群体 主要是银行和金融机构 可以看到的内容 http funds ft com FundDirectory aspx http funds ft com FundDirectory asp
  • 如何将 RDF 文件导入 Apache Solr

    我是 Apache Solr 的新手 我想将 rdf 文件导入 solr 进行索引 我用 google 搜索了它 但没有找到任何有用的东西 请给我一些指示 Solr 接受 JSON 文档 您可以将 RDF 文档转换为JSON LD http
  • 在 Spark mapPartitions 中使用 Java 8 并行流

    我试图了解 Spark 并行性中 Java 8 并行流的行为 当我运行下面的代码时 我期望输出大小为listOfThings与输入大小相同 但事实并非如此 我的输出中有时会缺少一些项目 这种行为并不一致 如果我只是遍历迭代器而不是使用par
  • scala:将 null 分配给原语

    我试图将 null 分配给一个 Double 变量 如下所示 var foo 0 0 foo null 但是 这会出现 null 无法隐式转换为 Double 的错误 所以我这样做 foo null asInstanceOf Double