文字列のリストを反復し、接尾辞/接頭辞 ""と連結したい場合は、リストの最後のエントリでない場合は末尾にコンマを追加します。文字列のスカラ/ Javaテンプレートリストの反復と連結
は出力例を募集:「円」、「キューブ」、「バナナ」
私の最初の試みは、以下の抜粋です。
@listStringifier(list: List[String]) = @{
if (list != null && !list.isEmpty) {
for ((string, index) <- list.zipWithIndex){if(index != list.size-1){"string",}
else{"string"}
}
}
}
しかし、私はどこでも@listStringifierを使用する場合、この関数は常に空です。
@listStringifierブロック内にログを記録すると、反復処理中ですが、何も割り当てられていないことが示されます。
私はこの次のようにテンプレートで直接ループのために呼び出した場合は、それが動作スニペット:
@if (list != null && !list.isEmpty) {
for ((string, index) <- list.zipWithIndex){if(index != list.size-1){"@string",}
else{"@string"}
}
}
をしかし、私は数回反復したくないので、私はその後、変数に連結された文字列を割り当てます。
すべてのヘルプは、私はmkString
はあなたが前後に引用符をしたい場合mkStringはエレガント
@listStringifier(list: List[String]) = @{ list mkString("", ",", "") }
これを行うことができます
list.mkString("'" , "','" , "'")
これはまさに私が探していたものなので、一重引用符を二重引用符に置き換えて、魅力的に機能しました。このように: 'list.mkString(" \ ""、 "\"、\ ""、 "\" ")助けてくれてありがとう – Yeti
ええ、私はエスケープシーケンスに夢中にならないようにPerlの 'q {"、 "}"のような別の文字列区切り文字を持つようなScalaの方法 – Thilo
私は仲間を知らない、ごめんなさい – Yeti