文字列補間
s、f、raw です。
「文字列補間」はCoddyKit上の無料Scala for Backend Engineering & Functional Programmingレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはScala for Backend Engineering & Functional Programming学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Scala for Backend Engineering & Functional Programmingコースには全4レッスンが含まれています。
文字列補間とは
文字列補間を使うと、+で連結する代わりに、文字列リテラルの中へ値を直接埋め込めます。
文字列の前にs、f、rawなどの文字を付け、$を使って値を挿入します。
s補間子
s補間子は、$nameと記述した場所に変数の値を挿入します。
最も一般的な補間子であり、扱いにくい文字列連結を置き換えられます。
object Main {
def main(args: Array[String]): Unit = {
val name = "Ada"
println(s"Hello, $name!")
}
}波かっこを使った式
単純な変数以外のものを埋め込む場合は、式を${ ... }で囲みます。
波かっこによって、補間子は式の開始位置と終了位置を判別できます。
object Main {
def main(args: Array[String]): Unit = {
val a = 4
val b = 6
println(s"Sum is ${a + b}")
}
}内部でメソッドを呼び出す
${ ... }の中ではメソッドも呼び出せます。有効な式であれば何でも使用できます。
object Main {
def main(args: Array[String]): Unit = {
val word = "scala"
println(s"Upper: ${word.toUpperCase}")
}
}f補間子
f補間子はprintf形式の書式設定を追加します。式の後に、少数点以下2桁なら%.2fのような書式を指定します。
金額、パーセンテージ、位置を揃えた出力に適しています。
object Main {
def main(args: Array[String]): Unit = {
val price = 9.5
println(f"Price: $$$price%.2f")
}
}整数の書式設定
f補間子では整数も書式設定できます。たとえば、10進整数には%d、ゼロ埋めには%05dを使用します。
object Main {
def main(args: Array[String]): Unit = {
val id = 42
println(f"ID: $id%05d")
}
}raw補間子
raw補間子はsと同様に動作しますが、エスケープシーケンスを処理しません。
そのため、\nは改行にならず、バックスラッシュとnという2文字のままになります。
object Main {
def main(args: Array[String]): Unit = {
println(raw"line1\nline2")
}
}sとrawの比較
sでは、エスケープシーケンス\nが実際の改行になります。rawではそのまま文字として扱われます。
パス、正規表現パターンなど、バックスラッシュを保持したい場合はrawを使用してください。
object Main {
def main(args: Array[String]): Unit = {
println(s"a\nb")
println(raw"a\nb")
}
}複数行の文字列補間
補間は、複数行にまたがるトリプルクォートの文字列でも使用できます。
テンプレート化した読みやすい出力を作るのに適しています。
object Main {
def main(args: Array[String]): Unit = {
val user = "Grace"
val score = 95
println(s"""User: $user
Score: $score""")
}
}ドル記号のエスケープ
補間された文字列内にドル記号をそのまま表示するには、$$と記述します。
これにより、補間子がドル記号を変数の開始として扱うのを防げます。
object Main {
def main(args: Array[String]): Unit = {
val amount = 20
println(s"Cost: $$$amount")
}
}まとめて使う
通常の変数、波かっこ内の式、メソッド呼び出しを、1つの補間されたメッセージに組み合わせます。
object Main {
def main(args: Array[String]): Unit = {
val item = "book"
val qty = 3
val each = 12.0
println(s"$qty ${item}s cost ${qty * each}")
}
}理解度チェック
補間子についての知識を確認しましょう。
まとめ
Scalaの3つの主な文字列補間子を学びました。
sは変数と${expr}形式の式を挿入しますfは%.2fや%05dなどのprintf形式の書式設定を追加しますrawはエスケープシーケンスを文字のまま保持します- ドル記号をそのまま表示するには
$$を使用します - トリプルクォートの複数行文字列でも補間を使用できます
よくある質問
「文字列補間」レッスンは無料ですか?
はい。「文字列補間」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Scala for Backend Engineering & Functional Programmingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Scala for Backend Engineering & Functional Programmingコースには全4レッスンが含まれています。
「文字列補間」で何を学びますか?
s、f、raw です。 ブラウザで直接実行するハンズオンコードでScala for Backend Engineering & Functional Programmingを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Scala for Backend Engineering & Functional Programmingを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのScala for Backend Engineering & Functional Programmingは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「文字列補間」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このScala for Backend Engineering & Functional Programmingレッスンでコードを書いて実行できますか?
はい。すべてのScala for Backend Engineering & Functional Programmingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。