scala - 如何使用准引号来获取值的类型?
问题描述
我正在尝试编写以下内容:
val value: Int = 3
val tpe = typeOf(value) // This is pseudocode. What should
// actually go on this line?
q"""
type U = $tpe
val v: U = $value
"""
本质上,我需要捕获value
( Int
) in的类型tpe
并将其分配给U
. 如何做到这一点?
解决方案
尝试
import scala.reflect.runtime.universe._
def getType[A: TypeTag](a: A): Type = typeOf[A]
val value: Int = 3
val tpe = getType(value) // Int
相关问题:如何获得 AST 所代表的值的类型?
推荐阅读
- spring-boot - CyberArk 与 Spring Boot 应用程序的集成
- asp.net-mvc - Axios 重定向到错误的 Action
- azure - Bot Framework Composer - 失败
- mysql - 从具有 AND NOT 条件的 NN 关系中进行选择
- c# - 我得到 UnityException Texture is not readable。我应该处理它吗?
- c# - 我想通过 dotnet core 和 ATAPI 库从本地机器向手机拨打电话
- javascript - 如何在同一 localhost 端口上使用 Express 服务器后端托管 NextJS 应用程序
- html - gmail中的HTML签名-奇怪的空间
- java - 为什么在我的情况下使用 Mockito 模拟静态方法不起作用?
- python - 没有for循环的有回报和流出的累积财富计算