s、f、rawインターポレーター
文字列に値を埋め込みます。
「s、f、rawインターポレーター」はCoddyKit上の無料Scala for Backend Engineering & Functional Programmingレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはScala for Backend Engineering & Functional Programming学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Scala for Backend Engineering & Functional Programmingコースには全4レッスンが含まれています。
補間とは何ですか?
String補間を使うと、文字列リテラルの中に値を直接埋め込めます。
+で要素を連結する代わりに、引用符の前に接頭辞の文字を置き、内部で変数を参照します。Scalaには組み込みの補間子としてs、f、rawの3つがあります。
val name = "Ada"
println(s"Hello, $name!")s補間子
s補間子は最も一般的です。開始引用符の前にsを置き、$variableを使って値を挿入します。
+による連結よりも読みやすくなります。
val count = 3
println(s"You have $count messages")波括弧を使った式
単純な変数以外のものを埋め込む場合は、式を${ }で囲みます。
これにより、文字列内で直接計算したりメソッドを呼び出したりできます。
val a = 4
val b = 5
println(s"Sum is ${a + b}")
println(s"Upper: ${"hi".toUpperCase}")実行できるsの例
s補間子を使ってあいさつ文を作る完全なプログラムを見てみましょう。
変数が文の中にきれいに挿入されていることに注目してください。
object Main extends App {
val user = "Sam"
val items = 2
println(s"Hi $user, you bought $items items.")
}ドル記号のエスケープ
補間された文字列では、$に特別な意味があります。ドル記号を文字として出力するには、$$と記述します。
価格や通貨を整形するときに便利です。
val price = 9
println(s"Total: $$$price")f補間子
f補間子では、printf形式の書式設定を追加できます。変数の後に、整数用の%dやString用の%sのような書式指定子を付けます。
数値の精度や配置を制御するのに適しています。
val n = 42
println(f"Value: $n%d")
val label = "Pi"
println(f"$label%s")小数の書式設定
小数点以下の桁数を制御するには、精度を指定した%fを使います。たとえば%.2fは小数点以下2桁を表示します。
金額や測定値に適しています。
val pi = 3.14159
println(f"Pi is $pi%.2f")
val ratio = 0.5
println(f"Ratio: $ratio%.1f")fによる幅とパディング
f補間子では、数値を指定した幅に合わせてパディングすることもできます。%5dは、幅5文字のフィールド内で整数を右寄せします。
出力の列をそろえるのに役立ちます。
val x = 7
println(f"[$x%5d]")
println(f"[$x%-5d]")raw補間子
raw補間子はsと同様に動作しますが、エスケープシーケンスを処理しません。
そのため\nは改行にならず、バックスラッシュとnという2文字のままになります。
println(raw"Path: C:\new\test")
println(s"Path: C:\new\test")適切な補間子の選び方
日常的な値の挿入にはsを使います。数値の書式設定が必要な場合はfを使います。ファイルパスや正規表現のようにバックスラッシュをそのまま保持したい場合はrawを使います。
3つとも$variableと${expression}をサポートしています。
val v = 1.0
println(s"s: $v")
println(f"f: $v%.2f")
println(raw"raw: $v\n")複数の値をまとめる
1つの補間文字列に、複数の変数や式を組み合わせられます。
長い+の連鎖に比べて、出力コードを簡潔で読みやすく保てます。
object Main extends App {
val item = "Coffee"
val qty = 2
val cost = 4.5
println(f"$qty x $item = $$${qty * cost}%.2f")
}理解度チェック
エスケープシーケンスをそのまま保持する補間子はどれですか?
まとめ
Scalaの3つの補間子を学びました。sは$varと${expr}で値を挿入します。
fは%.2fや%5dのようなprintf形式の書式設定を追加します。rawはsと同様に動作しますが、エスケープシーケンスをそのまま保持します。実際のドル記号を出力するには$$を使います。
よくある質問
「s、f、rawインターポレーター」レッスンは無料ですか?
はい。「s、f、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は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「s、f、rawインターポレーター」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このScala for Backend Engineering & Functional Programmingレッスンでコードを書いて実行できますか?
はい。すべてのScala for Backend Engineering & Functional Programmingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 文字列の基本
- s、f、rawインターポレーター
- よく使う文字列メソッド
- 複数行文字列