Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
如何使用 scala 宏打印变量名称和值?
我确信有一种更优雅的方式来编写以下宏来打印变量的名称和值 def mprintx c Context linecode c Expr Any c Expr Unit import c universe val namez c enclosi
scala
scalamacros
重写并实现特征的注释宏,未正确处理泛型
我正在编写一个宏 需要创建一个重写特征的类 该类具有相同的特征方法 参数 但返回类型不同 所以说我们有 trait MyTrait T def x t1 T t2 T T AnnProxy class MyClass T extends M
scalamacros
如何用其他树替换子树?
在 Scala 宏中 我想做这样的事情 我有一个Tree 可能很大 现在我想找到这棵树的一个具有某种具体形式的子树 例如Apply 现在我想创建一棵新树 它是原始树的副本 但找到的子树被其他树替换 例如 通过类似的方法 我可以用调用某些其他
scala
macros
abstractsyntaxtree
scalamacros
如何在 Scala 3 宏中创建泛型类型的实例?
我正在将宏从 Scala 2 移植到 Scala 3 作为其工作的一部分 Scala 2 宏使用默认构造函数创建泛型类型的实例 在 Scala 2 中使用准引用很容易做到这一点 但我在 Scala 3 宏上遇到了困难 这是迄今为止我最好的方
scala
metaprogramming
scalamacros
scala3
SBT 插件:如何将编译器插件添加为不向下游传播的依赖项?
我正在编写一个 SBT 插件 我想使用 Circe JSON 库 但它需要 Scala 2 10 上的 Macro Paradise 编译器插件 通常你添加编译器插件build sbt和 SBT 插件project plugins sbt
scala
sbt
scalamacros
sbtplugin
scalamacroparadise
如何在Scala3中编译并在运行时执行scala代码?
我想使用 Scala3 编译并执行在运行时以字符串形式给出的 Scala 代码 例如在 Scala 2 中我会使用 Reflection import scala reflect runtime universe as ru import
Java
scala
macros
scalamacros
scala3
Scala:在运行时替换方法
假设我有课 class Original def originalMethod 1 现在 假设我有一个例子 val instance new Original 现在是否可以做点什么instance在运行时替换originalMethod用不
scala
Testing
Reflection
Runtime
scalamacros
是否可以定义带有可变参数的宏,并获取每个参数的类型?
下面是一个明显的可变参数函数 def fun xs Any 我们可以用类似的方式定义一个宏 def funImpl c Context xs c Expr Any fun 1 1 1 0 但在本例中 所有参数都键入为Any 事实上 编译器在
scala
macros
scala210
scalamacros
获取密封特征的子类
是否有可能 通过宏 某种形式的无形状自动魔法或其他形式 获得密封特征的子类列表 在编译时 在运行时 您不需要任何第三方库来执行此操作 sealed trait MyTrait case object SubClass1 extends My
scala
scalamacros
shapeless
scalareflect
在运行时访问函数源代码的宏
使用 Scala 宏我想访问函数 f 的源代码 这是我的问题的简化示例 def logFImplementation f gt Boolean val sourceCodeOfF String lt how to get source co
scala
Reflection
macros
scalamacros
如何调试宏注释?
背景 我正在尝试添加一个 PrismsMonocle 的注释将按如下方式工作 鉴于 Prisms sealed trait Foo case object A extends Foo case object B extends Foo 它将
scala
scalamacros
在 sbt 中添加仅编译时的子项目依赖项
我有一个多项目包含一个私有宏子项目 其用途仅限于实现其他子项目的方法体 它既不应该出现在其他子项目的运行时类路径上 也不应该以任何形式在其他子项目已发布的 POM 中可见 这样其他 sbt 项目就可以在不知道宏子项目的情况下使用该项目中的库
scala
sbt
dependencyManagement
scalamacros
使用 Scala 3 宏重写方法
我正在尝试使用 Scala 3 宏和 TASTY 重写方法 我想重写任何类型的任何方法 现在我从这个简单的案例开始 我有一个测试基类 class TestClass def func s String base 我想实现这一点 但使用 TA
scala
scalamacros
scala3
Scala 宏:获取参数默认值
我有下一个代码 我想从值中提取默认参数 def extractor T macro extractorImpl T def extractorImpl T c WeakTypeTag c Context first i got a type
scalamacros
当宏注释不能在定义它的同一编译中使用时,这意味着什么?
我对这个说法很好奇 错误 3 18 另一种可能性是您尝试使用宏 定义它的同一编译运行中的注释 我尝试谷歌搜索并发现了这个 最后 请记住 使用宏需要分两步进行编译 首先编译宏 然后编译使用宏的代码 这是必要的 以便您的宏可以在编译其余代码之前
scala
scalamacros
scalamacroparadise
如何获取Scala函数的参数/返回类型?
我有一个函数 想要获取它的参数类型和返回类型以在 Scala 宏中使用 scala gt val fn a String b Double gt 123 fn String Double gt Int
scala
Reflection
anonymousfunction
scalamacros
Scala 宏的静态返回类型
所以我有这个宏 import language experimental macros import scala reflect macros Context class Foo class Bar extends Foo def laun
scala
types
macros
scala210
scalamacros
如何在 reify 子句中使用 Scala 宏中计算的类型?
我一直在使用 Scala 宏 并在宏中包含以下代码 val fieldMemberType fieldMember typeSignatureIn objectType match case NullaryMethodType tpe gt
scala
scala210
scalamacros
如何在点宏中访问案例类的参数列表
我正在尝试在 dotty 中学习元编程 特别是编译时代码生成 我认为通过构建一些东西来学习是一个很好的方法 所以我决定制作一个 CSV 解析器 它将行解析为案例类 我想使用点宏来生成解码器 trait Decoder T def decod
scala
Reflection
metaprogramming
scalamacros
dotty
Scala 宏:类型化(又名类型检查)树和非类型化树之间有什么区别
我正在开始使用 scala 宏 它们非常棒 但是我遇到了类型化 又名类型检查 和非类型化之间的区别Trees 例如 您不能调用c eval由于某种原因使用类型检查的树 我在 scala 宏文档中找不到关于此 类型检查 的文档 我知道他们仍在
scala
typechecking
scalamacros
1
2
3
»