unapply相关内容

如何在多态 unapply 中使用提取器?

我真的不明白这个小东西.我有一个抽象类 Box有几个不同类型的子类.例如 抽象类Boxclass StringBox(val sValue : String) 扩展 Box Box 伴随对象中的 apply 方法很简单: object Box{def apply(s: String) = new StringBox(s)def apply(b: Boolean) = new BooleanB ..
发布时间:2021-07-15 20:35:13 其他开发

是否可以在 Scala 中对提取器(不应用)的参数使用隐式转换?

我创建了一个名为 CaseInsensitive 的类,它包含一个字符串(参见 实现一个字符串类,在 Scala 中进行不区分大小写的比较). 我创建了一个 case 类,它有一个 CaseInsensitive 类型的成员变量,所以它有一个默认的 unapply 方法,它提取一个 CaseInsensitive 类型的变量,但我希望像这样使用它: case class PropertyK ..
发布时间:2021-07-15 20:00:15 其他开发

为什么在 case 类的 `unapply` 方法的实现中有一个 `null` 检查?

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

unapply 和 unapplySeq 有什么区别?

为什么 Scala 有 unapply 和 unapplySeq?两者有什么区别?我什么时候应该更喜欢一个? 解决方案 不深入细节和简化一点: 对于常规参数 apply 构造和 unapply 解构: 对象 S {def apply(a: A):S = ...//从 A 生成 Sdef unapply(s: S): Option[A] = ...//从 S 中检索 A}val s ..
发布时间:2021-06-14 20:15:57 其他开发

Scala-隐式转换,不应用

我希望提取器可以隐式地转换其参数,但是它似乎不起作用.考虑这个非常简单的情况: case class MyString(s: String) {} implicit def string2mystring(x: String): MyString = new MyString(x) implicit def mystring2string(x: MyString) = x.s objec ..
发布时间:2020-11-27 05:29:30 其他开发