Scala2.10より、String Interpolationの機能が追加され、文字列中に式を埋め込むのが容易になりました。
double quotationの前にs
を付けると、文字列中にある$(変数名)
が置き換わる。
val w = "World"
val message = s"Hello $w!"
println(message) // Hello World! と表示される
{}
で囲むと、任意の式を含めることもできる。
println(s"2 * 3 = ${2 * 3}") // 2 * 3 = 6 と表示される
文字列にf
をつけるとprintfの構文が使えるようになる。$(変数名)%(フォーマット指定)
を文字列に埋め込むと変数の内容を表示するときのフォーマットが指定できる。
val dollarToYenRate = 80.0
val budget_d = 10000000
println(f"Currency conversion: $budget_d%d to ${budget_d * dollarToYenRate}%,.2f yen")
f Stringでは、フォーマット指定を省くと文字列(%s
と同じ)と扱われる。
フォーマット指定と実際の変数の型が異なると、コンパイル時にエラーがでる(type safeになる)ので、printf実行中のエラーを防げるようになった。
%s |
文字列 |
%d |
整数 |
%f |
浮動小数点数 |
%e |
科学計算用の指数を含んだ数字。e-10などが付く |
%
と上記のシンボルの間にflagを複数個挟むことができる。
, |
3桁ごとにcommaを挟んで表示 |
(数字) |
数字で指定された分のスペースを使って表示。- を付けると右寄せ |
.2 |
小数点以下二桁を表示 |