1

Scala は f メソッドの String 補間でどのようにタイプ セーフを取得しますか。StringContext.f メソッドは Any の引数を取ります。では、Int、Double などが必要かどうかをどのように判断できますか。

def f(args: Any*): 文字列

4

1 に答える 1

4

メソッドはマクロfとして実装されます。

コンパイル時にマクロ実装が呼び出されます。ソースまたは実装は次のとおりです。

メソッドfは として定義されてdef f(args: Any*): Stringいますが、マクロの実装では、実際のパラメーターの型 ( としてargs: List[Tree]) と実際の文字列の内容を取得できます。

于 2013-10-03T11:28:12.657 に答える