为什么 map/filter ... 不适用于无数组?

2023-12-09

Nothing 不是所有类型的子类型吗?

scala> val array = new Array(5)
array: Array[Nothing] = Array(null, null, null, null, null)

scala> array.map(_ => 42)
<console>:9: error: value map is not a member of Array[Nothing]
       array.map(_ => 42)
             ^

scala> array.filter(_ != 42)
<console>:9: error: value filter is not a member of Array[Nothing]
       array.filter(_ != 42)
             ^

奇怪的是这不起作用。

这是指定的功能还是错误?


当您看到涉及 Nothing 的奇怪行为时,这是因为类型推断算法认为它本身插入了 Nothing,因为它是在类型推断期间引入的:如果对类型变量一无所知,那么它就会受到 Any 和 Nothing 的限制。长期以来,我一直在要做的事情清单上,看看我是否可以为此目的引入一个新的仅限内部的底部类型,以便用户级 Nothing 和推理级 Nothing 不会混合在一起,但这是一项非常雄心勃勃的任务。不过,我现在可能已经足够硬核去尝试了。

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

为什么 map/filter ... 不适用于无数组? 的相关文章

随机推荐

  • Volley速度慢并导致内存泄漏

    在我的项目中 我使用 volley 下载 JSON 流 我解析该流并将其显示在列表视图中 我使用以下方法加载数据 private void loadEventData int year final int month get volley
  • 在您的 delphi 应用程序中托管 WSH(VBScript、JavaScript)?

    我正在寻找从我的 Delphi 应用程序执行用户提供的脚本 是否可以在我的应用程序中托管 Windows 脚本宿主引擎并为其提供要执行的脚本 或者 有更好的方法来解决这个问题吗 P S 我不是在寻找第三方组件 这是完全可能的 并且有大量代码
  • 替换每行中第一次出现的位置

    假设我有一个格式如下的文档 word1 word2 word3 word4 word5 word6 word7 word8 我该如何使用sed将第一次出现的空格替换为逗号后跟空格 以便文档如下所示 word1 word2 word3 wor
  • 在从命令行调用的 Jython 脚本中使用 UCanAccess

    操作系统 Windows7 Jython2 7 0FR 最终版本 尝试将 Gord Thompson 的解决方案与 Jython 结合使用 在没有 ODBC 的情况下从 Java 操作 Access 数据库 我可以让 Ucanaccess
  • 如何在核心java中实现图?

    我有一个有向未加权图 给出了节点的数量和节点之间的所有链接 我尝试使用向量数组来完成该任务 但 java 不支持它 ArrayList 和 Vectors 支持随机访问迭代器 但无法在 java 中执行此操作 因为我是新手 我不想使用二维矩
  • 排序合并的数据框

    作为一个相当新的 R 程序员 我似乎遇到了一个奇怪的问题 可能是我对 R 缺乏经验 在读取连续文件并将其合并到单个数据帧中后 我发现顺序未按预期对数据进行排序 我在每个文件中有多个引用 但每个文件引用在不同时间获得的测量数据 这是代码 li
  • 正确的 Bash 和 shell 脚本变量大写 [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我遇到过许多变量全部大写的 shell 脚本 我一直认为这存在严重的误解 我的理解是 按照惯例 也许很久以前就有必要 环境变量全部大写 但在像 Bash 这样的现代脚本环境中 我一直更喜欢
  • Google oauth java 客户端获取访问令牌失败,并显示“400 Bad Request {“error”:“invalid_request”}”

    我正在使用此处显示的 Web 服务器应用程序 示例 在我的回调 servlet 中 我想检索访问令牌 但无法成功执行此操作 以下是我的代码 Override protected String getUserId HttpServletReq
  • UIAnimation的理解

    我正在尝试使用以下代码来执行一些动画 void performSlidingfromX int xx fromY int yy UIImageView Image self getImage UIView beginAnimations n
  • 透明JButton

    是否可以使 JButton 透明 包括边框 但不透明文本 我扩展了 swing 的 JButton 并覆盖了它 Override public void paint Graphics g Graphics2D g2 Graphics2D g
  • 如何使用 DXL 脚本从 IBM Doors 加载特定基线

    我编写了一个从批处理文件运行的 DXL 脚本 它接收一个模块路径 一个基线和一个视图 批处理命令打开 IBM Doors 9 6 后 脚本应该转到具有相关视图的模块路径并加载输入的基线 我的问题是我的脚本加载了current基线而不是我输入
  • 如何将多个实体集绑定到一个 odata 控制器?

    我有很多不同的实体想要为其启用 OData 这些实体根据其类型分为不同的组 目前 默认设置是将 EntitySet 与控制器名称相匹配 但我不希望为我拥有的每个实体类型都有一个控制器 有没有一种方法可以将多个 EntitySet 映射到一个
  • 将动态连接字符串与 Breeze EFContextProvider 结合使用

    目前我有一个应用程序 web silverlight 其中我的 ObjectContext 的连接字符串是动态的 它基于用户登录的方式 因为我的每个客户都有自己的数据库 即 用户名 域 我试图找到一种使用 EFContextProvider
  • CSS 使 DIV 位置固定在具有 PE​​RSPECTIVE 属性的 DIV 内部

    我有一个获取问题 fixed with position fixed关系到 container 检查这个小提琴 https jsfiddle net a1zoghs0 2 我知道 如果我把 fixed在外面 container 它将有pos
  • GCC 有多少个优化级别?

    多少GCC优化级别有哪些 我尝试了 gcc O1 gcc O2 gcc O3 和 gcc O4 如果我使用非常大的数字 它将不起作用 不过 我已经尝试过 gcc O100 它编译了 有多少个优化级别 迂腐地说 您可以为 gcc 提供 8 个
  • 如何在 VSTS 构建代理上的本地主机上打开 TCP 端口?

    使用 Visual Studio Team Services 的在线托管版本时 我的单元测试无法连接到侦听生成代理本地主机上的 TCP 端口的服务 该服务能够启动并打开 TCP 端口 但在单元测试中似乎无法访问 错误信息 2017 06 2
  • ActionController::RoutingError(未初始化常量 AdminsController)

    我正在使用 Rails 3dhtmlxGrid 我创建了一个名为的控制器admin我们定义了 3 个函数 例如view data dbaction及其视图文件 下面是我的admin控制器文件 class AdminController lt
  • 无需 jQuery 即可平滑滚动锚链接

    是否可以使用平滑滚动来锚定链接 但是without jQuery 我正在创建一个新网站 但我不想使用jQuery 扩展这个答案 https stackoverflow com a 8918062 3851798 定义scrollTo函数后
  • 如何使用 wp7 的 GPS 获取地址名称

    我可以使用 GeoCoordinateWatcher 类获取 Windows Phone 7 上的当前 GPS 坐标 如下所示msdn 我只能得到Latitude and 经度值 但我想得到Address那个位置的 市场上有一个名为 Whe
  • 为什么 map/filter ... 不适用于无数组?

    Nothing 不是所有类型的子类型吗 scala gt val array new Array 5 array Array Nothing Array null null null null null scala gt array map