中缀表示法的有趣行为

2024-04-10

有时,有人试图躲在电脑屏幕后面,试图摆脱女朋友。然而,我发现Scala有时和我的女孩一模一样……

这将打印两个列表之间的交集:

  val boys = List(Person("John"), Person("Kim"), Person("Joe"), Person("Piet"), Person("Alex"))

  val girls = List(Person("Jana"), Person("Alex"), Person("Sally"), Person("Kim"))

  println("Unisex names: " + boys.intersect(girls))

这绝对不打印任何内容:

  val boys = List(Person("John"), Person("Kim"), Person("Joe"), Person("Piet"), Person("Alex"))

  val girls = List(Person("Jana"), Person("Alex"), Person("Sally"), Person("Kim"))

  println("Unisex names: " + boys intersect girls)

没有编译器警告,并且该语句绝对不会在控制台上打印任何内容。有人可以温和地解释一下(我宿醉了吗)为什么会这样。


它被脱糖为:

println("Unisex names: ".+(boys).intersect(girls))

然后根据-Xprint:typer编译器选项它被重写如下:

println(augmentString("Unisex names: ".+(boys.toString)).intersect[Any](girls))

where augmentString是类型的隐式转换String to StringOps,它提供了intersect method.

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

中缀表示法的有趣行为 的相关文章

随机推荐

  • Internet Explorer 和剪辑路径

    据我所知 clip path 应该在 IE 中工作 如许多文章和本教程中所示CSS 屏蔽 http www html5rocks com en tutorials masking adobe redirect from locale fr
  • 创建自签名 SSL 证书时出错

    我尝试根据链接中的说明创建自签名证书mosca MQTT 代理的安全密钥和证书 https stackoverflow com questions 39913842 security key and cert for mosca mqtt
  • 将实体框架中的字符串列映射到枚举

    有没有办法将字符串列映射到实体模型中的枚举 我已经在 Hibernate 中完成了此操作 但在 EMF 中无法弄清楚 可能是更好的版本 OrderStateIdentifier 字段用于 JSON 序列化和数据库字段 而OrderState
  • Spring Boot MongoDB 连接问题

    我的 Spring Boot 应用程序正在尝试连接到 MongoDB 数据库 配置添加到 application yml 文件中 直到昨天 该应用程序在本地运行得完全正常 但是今天当我在本地主机上本地运行它时 我收到以下错误 2020 12
  • ngClass 中的多个类

    我正在尝试在 ngClass 中添加多个值 该值过去适用于以前的 alpha 版本 但现在似乎不适用于 angular2 beta i i 它会产生一个错误 异常 类型错误 无法读取未定义的属性 add fa fa star 在 PostV
  • 策略模式和命令模式的区别

    两者有什么区别策略模式 http en wikipedia org wiki Strategy pattern和命令模式 http en wikipedia org wiki Command pattern 我也在寻找一些 Java 的例子
  • 我可以将其序列化为 json 字符串并查看它,而不是使用反射来循环访问类属性吗?它有什么缺点吗?

    假设我有一个像下面这样的课程 class Student public int ID get set public string Name get set 只是还有 10 个属性 我想循环遍历这些属性 我可以通过反射来完成 这会有性能成本
  • 使用 ODataQueryOptions 扩展导航属性

    我正在构建一个 OData v 4 Web 服务 该服务必须公开从另一个第 3 方 Web 源检索的数据 因此该数据与 LINQ 世界中的任何内容都不相同 即 没有 IQueryable 没有 Context 什么都没有 解决方法似乎是手动
  • 在 Win32 上构建适用于 Android (ARMv7) 的 OpenSSL

    如何在 Win32 上构建适用于 Android ARM v7 使用 Android NDK 的 OpenSSL 直到 OpenSSL 的出现wiki http wiki openssl org index php Android和 set
  • 如何在 JMeter 中使用命令行参数

    我正在使用 Jmeter 测试 API 我想从终端参数化项目的路径 然后我想在 JMeter 中使用此参数 我通过命令行发送的参数 jmeter n t your script jmx Jurl abcdef com 我在用户定义变量中使用
  • 使用 itext pdf stamper 在 pdf 中添加多个附件

    我想在一个 pdf 文件中添加多个附件 当我进入循环时 它只附加最后一个附件 示例代码 PdfReader reader new PdfReader FILE PdfStamper stamper new PdfStamper reader
  • 在 Android Studio 中丢失对静态数据的引用

    当我的应用程序进入后台时 我遇到静态数据实例丢失的问题 从而导致空指针异常错误 静态数据非常依赖于上下文或 状态 并且通常不能在初始化时生成 为了确保我保留这些数据 我是否会被迫将数据写入存储 或者是否有其他方法来确保我的静态数据在应用程序
  • win10 应用程序 - 在列表顶部的新项目中添加动画

    我正在制作一个新闻源应用程序 它会定期将新内容添加到列表顶部 当我检查新商品时 可能有几十件或只有一件 我想要的是让最旧的新项目能够看到 这样他们就可以继续向上滚动以获取更新的故事 遗憾的是 该平台并不是免费提供的 然而有趣的是 它确实是免
  • 使用 pysnmp 从 MIB 文本约定转换 OID 值对

    我正在尝试编写一段代码 它接受一个 JSON 对象 其中 OID 作为键 OID 值作为值 一个例子是 1 3 6 1 4 1 562 29 6 2 3 Link Down 收到此 JSON 对象时 我想使用 PySNMP 转换 OID 和
  • 在哪里提供 NSURL 值?

    每次我运行该应用程序时 它都会崩溃并且控制台显示 由于未捕获的异常 MissingDatabaseURL 而终止应用程序 原因 无法获取 FirebaseDatabase 实例 在 FIRApp 中或从您的 databaseForApp U
  • 从文件名中提取版本

    这是我的示例文件名Text 2 23 txt我已经分离了扩展 但无法获取版本 因此我可以稍后在代码中使用它进行比较 我需要得到2 23 out 编辑 文件名可以采用多种形式 但版本始终位于文件名的末尾 string s f1 Name To
  • 如何在 Ruby 中将 JSON 转换为 XML?

    有没有办法在 Ruby 中将 JSON 转换为 XML require active support for to xml gem install activesupport use the 2 3 branch require json
  • 为什么我的 C# winforms 应用程序中的第一个 HttpClient.PostAsync 调用非常慢?

    我有一个像这样的 httpclient var client new HttpClient 我像这样发布 var result client PostAsync endpointUri requestContent 并得到这样的响应 Htt
  • IShellLink::SetIconLocation 将我的图标路径转换为 ​​%Program Files% 这是错误的

    有谁知道如何纠正这种行为 目前 当我们的安装程序安装我们的应用程序时 它会获得一个IShellLink 然后加载我们的快捷方式图标 在开始菜单和桌面中 所需的数据 然后使用IPersistFile 保存写出快捷方式 问题是为图标指定的路径
  • 中缀表示法的有趣行为

    有时 有人试图躲在电脑屏幕后面 试图摆脱女朋友 然而 我发现Scala有时和我的女孩一模一样 这将打印两个列表之间的交集 val boys List Person John Person Kim Person Joe Person Piet