0Pricing
Scala for Backend Engineering & Functional Programming · レッスン

文字列補間

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. REPL の利用
  2. val、var、型
  3. 文より式
  4. 文字列補間
← Scala for Backend Engineering & Functional Programmingに戻る