如何在Scala 2.13中使用文字类型

时间:2019-06-14 17:45:45

标签: scala scala-2.13

我正在尝试从Scala 2.13获得文字类型,并且遇到以下错误:

scala> def double[A <: Singleton] = valueOf[A]
                                           ^
       error: No singleton value available for A.

你能解释为什么吗?

2 个答案:

答案 0 :(得分:6)

我不认为这种方式有效,而是使用相关的类型类ValueOf

object Foo

def foo[A : ValueOf] = valueOf[A]

scala> foo[Foo.type]

res2: Foo.type = Foo$@1c105c3a

答案 1 :(得分:3)

我不确定您要尝试什么,但是这里是doc中的示例:

def foo[T](implicit v: ValueOf[T]): T = v.value
  

添加了一个scala.ValueOf[T]类型类和相应的scala.Predef.valueOf[T]运算符,从而产生了具有单个居民的类型的唯一值