相关疑难解决方法(0)

Type和Class有什么区别?

什么使一个类型与类不同,反之亦然?

(在一般语言不可知的意义上)

language-agnostic glossary types programming-languages class

136
推荐指数
6
解决办法
5万
查看次数

为什么自我注释的特征不能分配给自我类型?

trait Base

trait Plugin { base: Base =>
    def asBase: Base & Plugin = this
}

class Mix extends Base, Plugin

val plug: Plugin = new Mix
val baseA: Base= plug.asBase
val baseB: Base = plug // snorts with "Found: Plugin. Required: Base
Run Code Online (Sandbox Code Playgroud)

为什么?如果我是正确的,则遵守里氏替换原则,因为 的所有实例Plugin都是具体类型,该类型是包含 的子类型的混合Base。因此,Base可以用type的对象替换type的对象Plugin,而不影响程序的正确性。

scala scala-3

4
推荐指数
1
解决办法
76
查看次数

我如何在scala中使用java.lang.Integer

我想使用静态方法Integer#bitCount(int).但我发现我无法使用类型别名来实现它.类型别名和导入别名有什么区别?

scala> import java.lang.{Integer => JavaInteger}
import java.lang.{Integer=>JavaInteger}

scala> JavaInteger.bitCount(2)
res16: Int = 1

scala> type F = java.lang.Integer
defined type alias F

scala> F.bitCount(2)
<console>:7: error: not found: value F
       F.bitCount(2)
       ^
Run Code Online (Sandbox Code Playgroud)

java scala

3
推荐指数
1
解决办法
1560
查看次数

理解Scala 3.3.1中Tuple2类的继承层次结构

我希望更清楚地理解Scala 3.3.1 中 Tuple2 类的位置。

在其源代码中,可以清楚地看出该类继承了 Product2 特征。我仍然怀疑的是 Tuple2 是如何立即继承自:

  • 类 T1 *: T2 *: EmptyTuple.type
  • 特质可序列化

我一直无法理解这一点。

我已经阅读了相关的 Scala 文档和源代码。我可以理解这些层次结构的继承的整体设计思想,但我还没有理解更细致的点(以问题为例)

inheritance scala tuples scala-3

1
推荐指数
1
解决办法
56
查看次数