準引用符を使用してパッケージ AST を生成しようとしています。次のようなパッケージパスをリストする文字列変数があります
val pkg = "database.dao"
quasi quote を使用すると、代わりにq"package $pkg
a が必要であることがわかりRefTree
ます。しばらく検索してみましたが、文字列を変換する答えが見つかりませんRefTree
どうすればいいですか?
準引用符を使用してパッケージ AST を生成しようとしています。次のようなパッケージパスをリストする文字列変数があります
val pkg = "database.dao"
quasi quote を使用すると、代わりにq"package $pkg
a が必要であることがわかりRefTree
ます。しばらく検索してみましたが、文字列を変換する答えが見つかりませんRefTree
どうすればいいですか?
このスライドシェアの pg 7 で答えを見つけました
Select()
パッケージ変数を動的に挿入したい場合は、複数の を使用して独自の AST を生成する必要があることがわかりました。
def selectIdentity(directory: String): Select = {
val dirs = directory.split('.').reverse
val lastIndex = dirs.length - 1
def apply(i: Int = 0) : Select = if (i < lastIndex - 1) {
Select(apply(i + 1), TermName(dirs(i)))
} else {
Select(Ident(TermName(dirs(lastIndex))), TermName(dirs(lastIndex - 1)))
}
apply()
}