この質問は ( Why is there no string interpolation in Scala? ) に関連していますが、より具体的には複数行の文字列を扱っています。
msg = "Hello {name}!" という単純な文字列のプレースホルダーに関する Martin の提案に、私はほぼ同意しました。
今日の Scala では、次のようにほとんど違いなく表すことができます: msg = "Hello"+name+"!"
ただし、そのアプローチが複数行の文字列には当てはまらないと思います。また、場合によっては、読みやすさを優先して他の不適切な慣行を助長している可能性があります。Scala Play ANORM データベース マッピングでは、フレームワークが (プレースホルダーを使用して) プレーンな SQL で可読性を維持しようとする方法に注意してください。 .on("国コード" -> "FRA")
SQL(
"""
select * from Country c
join CountryLanguage l on l.CountryCode = c.Code
where c.code = {countryCode};
"""
).on("countryCode" -> "FRA")
さらに、これに対処するための Scala の変更がないと仮定すると、インライン XML を使用することの意味は何でしょうか? パフォーマンス、メモリなどは次のようになります。
val countryCode = "FRA"
SQL(<c>
select * from Country c
join CountryLanguage l on l.CountryCode = c.Code
where c.code = {countryCode};
</c>.text)