在Scala 3中,如何从其类型中调用常量?

问题描述 投票:0回答:1

假设我想从其类型

3
中召唤一个常数3。

在 Scala 2 中,这可以通过无形见证轻松完成:

val w = implicitly[Witness[3]]
w.value

这在 Scala 3 中没有对应的,我尝试了以下方法:

  val v2 = summon[3]

  val v3 = inline constValue[3]

而且它们似乎都不起作用。实现这个的规范方法是什么?怎样才能让它在 Scala 3 和 2.13 之间交叉编译?

scala shapeless scala-3 singleton-type
1个回答
0
投票

在 Scala 3 中使用

import scala.compiletime.constValue

constValue[3]

https://scastie.scala-lang.org/DmytroMitin/puPRyLUgQmaVfXslE7Di7Q

或者好的旧类型课程

scala.ValueOf

valueOf[3]  // from scala.Predef

https://scastie.scala-lang.org/DmytroMitin/puPRyLUgQmaVfXslE7Di7Q/1

© www.soinside.com 2019 - 2024. All rights reserved.