Scala 树木可以再利用吗

Scala 树木可以再利用吗,scala,macros,abstract-syntax-tree,Scala,Macros,Abstract Syntax Tree,我正在写一个宏,需要相同的语句出现在不同的地方。我应该将该语句定义为val还是def val似乎很自然,但我担心Tree可能有可变的内部实现(例如存储行号),在不同的地方重复使用相同的值可能会带来混乱 我可以重复使用同一个对象,还是每次都要生成新对象?现有的树如何?我是否可以安全地将其分解并使用其部件创建另一个树

我正在写一个宏,需要相同的语句出现在不同的地方。我应该将该语句定义为
val
还是
def

val
似乎很自然,但我担心
Tree
可能有可变的内部实现(例如存储行号),在不同的地方重复使用相同的值可能会带来混乱

我可以重复使用同一个对象,还是每次都要生成新对象?现有的
树如何?我是否可以安全地将其分解并使用其部件创建另一个