繁体   English   中英

Scala 交叉编译文字类型

[英]Scala cross compiling literal types

有没有办法将文字类型交叉编译为 Scala 2.12?

比方说

def foo[S <: String](implicit V: ValueOf[S]): String = V.value

println(foo["bar"])

Shapeless 可以使用ValueOf shapeless.Witness或者提供另一种类型 class 和 Scala 版本特定实现。 但是我对如何处理表达式foo["bar"]有点迷茫。

foo["bar"]在 2.12 中不可解析。

你应该使用foo[Witness.`"bar"`.T]

def foo[S <: String](implicit V: Witness.Aux[S]): String = V.value

println(foo[Witness.`"bar"`.T]) //bar

获取“单例类型”的类型

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM