问题标签 [unapply]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
54 浏览

scala - 没有案例类的理解不适用

我正在尝试下面的例子来理解unapply

不幸的是,它因编译错误而失败Cannot resolve symbol nameCannot resolve symbol age.

然而,当我声明Empcase类时,它工作得非常好,没有任何编译错误。

有人可以解释这背后的原因吗?

注意:scalaVersion- 2.12.7

0 投票
2 回答
277 浏览

scala - 在 unapply 中找不到 Scala 无形 Generic.Aux 隐式参数

我在 Scala 中遇到了以下使用 Shapeless 的隐式问题Generic.Aux

上面的代码无法编译。它报告

但是,如果我手动执行

导出这个隐式实例是完全可以的。

0 投票
1 回答
366 浏览

scala - 无法解决 unapply

这是一个最小化的示例,其中我尝试为案例类 Cube 实现自定义 unapply 方法以及默认的 unapply 方法。但是,如果尝试对 xi 进行模式匹配,则会收到以下错误消息,因为 Func 和 FuncSpezialize 是完全不同的类型:

任何想法,为什么会这样?

0 投票
1 回答
106 浏览

scala - 为什么在案例类的`unapply`方法的实现中有`null`检查?

我正在努力unapply用我自己的实现替换案例类的伴随对象上的方法。在调查了许多与 implementation 相关的不同切线之后unapply,似乎null在它们中的大多数中都有一个保护,无论是在编译器生成的代码中,还是在它被显式重新定义的实现中。编译器生成的代码unapply看起来与此类似(其中一些使用eq而不是ne):

鉴于null在纯(即惯用的)Scala 代码中绝对不应该使用,为什么null要执行此检查?它是否与 Java 互操作(因为 Java 仍然沉迷于利用null)泄漏到unapply方法中有关?如果我删除了检查,因为我已经消除了unapply传递方法的案例类实例可能为空或无效的可能性,我会遭受什么(如果有的话)不良后果?IOW,用这个替换上述实现有什么害处?

0 投票
2 回答
54 浏览

scala - 在特征中使用 unapply 定义

我有一个特质

这里的问题是我不能在不创建提取器对象的情况下使用特征中定义的 unapply 。

我想使用这个特性覆盖不同对象中的 getString 方法。