相关疑难解决方法(0)

Scala:抽象类型与泛型

我正在阅读斯卡拉之旅:抽象类型.什么时候使用抽象类型更好?

例如,

abstract class Buffer {
  type T
  val element: T
}
Run Code Online (Sandbox Code Playgroud)

而是那些泛型,例如,

abstract class Buffer[T] {
  val element: T
}
Run Code Online (Sandbox Code Playgroud)

generics scala abstract-type

243
推荐指数
3
解决办法
3万
查看次数

从`Some [A]`到'A`

有没有什么办法,去的类型ASome[A]

type X = Some[Int]
type Y = ??? // what do I have to write here to get `Int`
Run Code Online (Sandbox Code Playgroud)

我可以定义自己的Option类型,允许这样:

sealed trait Option[+A]
case object None extends Option[Nothing]
case class Some[+A](a: A) {
  type Inner = A
}
Run Code Online (Sandbox Code Playgroud)

然后使用

type X = Some[Int]
type Y = X#Inner
Run Code Online (Sandbox Code Playgroud)

对于普通的Scala Option类型,这也可以吗?

scala

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

标签 统计

scala ×2

abstract-type ×1

generics ×1