Scala如何在f方法字符串插值上获得类型安全。StringContext.f 方法采用 Any 的参数。那么它如何能够判断是否需要 Int、Double 等:
def f(args: Any*): 字符串
方法 f
作为宏实现。
在编译时调用宏实现。这是源或实现。
方法f
被定义为def f(args: Any*): String
,但宏实现可以得到实际的参数类型(如args: List[Tree]
)和实际的字符串内容。