问题标签 [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.
scala - 没有案例类的理解不适用
我正在尝试下面的例子来理解unapply
,
不幸的是,它因编译错误而失败Cannot resolve symbol name
,Cannot resolve symbol age
.
然而,当我声明Emp
为case
类时,它工作得非常好,没有任何编译错误。
有人可以解释这背后的原因吗?
注意:scalaVersion- 2.12.7
scala - 在 unapply 中找不到 Scala 无形 Generic.Aux 隐式参数
我在 Scala 中遇到了以下使用 Shapeless 的隐式问题Generic.Aux
:
上面的代码无法编译。它报告
但是,如果我手动执行
导出这个隐式实例是完全可以的。
scala - 无法解决 unapply
这是一个最小化的示例,其中我尝试为案例类 Cube 实现自定义 unapply 方法以及默认的 unapply 方法。但是,如果尝试对 xi 进行模式匹配,则会收到以下错误消息,因为 Func 和 FuncSpezialize 是完全不同的类型:
任何想法,为什么会这样?
scala - 为什么在案例类的`unapply`方法的实现中有`null`检查?
我正在努力unapply
用我自己的实现替换案例类的伴随对象上的方法。在调查了许多与 implementation 相关的不同切线之后unapply
,似乎null
在它们中的大多数中都有一个保护,无论是在编译器生成的代码中,还是在它被显式重新定义的实现中。编译器生成的代码unapply
看起来与此类似(其中一些使用eq
而不是ne
):
鉴于null
在纯(即惯用的)Scala 代码中绝对不应该使用,为什么null
要执行此检查?它是否与 Java 互操作(因为 Java 仍然沉迷于利用null
)泄漏到unapply
方法中有关?如果我删除了检查,因为我已经消除了unapply
传递方法的案例类实例可能为空或无效的可能性,我会遭受什么(如果有的话)不良后果?IOW,用这个替换上述实现有什么害处?
scala - 在特征中使用 unapply 定义
我有一个特质
这里的问题是我不能在不创建提取器对象的情况下使用特征中定义的 unapply 。
我想使用这个特性覆盖不同对象中的 getString 方法。