複数行文字列
三重引用符のブロックを使います。
「複数行文字列」は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レッスンが含まれています。
複数行文字列とは何ですか?
メッセージ、JSON、SQLクエリのように、複数行にわたるテキストが必要になることがあります。
Scalaではトリプルクォートを使って記述でき、入力したとおりに改行を保持できます。
val text = """Line one
Line two"""
println(text)三重引用符構文
テキストの両側を3つの二重引用符で囲みます: """..."""。
内部では通常の二重引用符をエスケープする必要がないため、引用符を含むテキストに最適です。
val json = """{"name": "Ada"}"""
println(json)実際の改行
三重引用符で囲んだ文字列では、Enterキーを押すと値の中に実際の改行が作成されます。
レイアウトを維持したい複数行のテキストに便利です。
object Main extends App {
val poem = """Roses are red
Scala is neat"""
println(poem)
}インデントの問題
コード内で複数行文字列をインデントすると、その先頭の空白も値の一部になります。
そのまま出力すると見た目が乱れることがあります。Scalaにはインデントをきれいに削除する方法があります。
val msg = """Hello
World"""
println(msg)stripMargin
stripMarginは、デフォルトでは|であるマージン文字までの先頭の空白を削除します。
各行の先頭に|を置き、stripMarginを呼び出すと、コードをきれいに整列できます。
val msg = """Hello
|World""".stripMargin
println(msg)きれいな複数行ブロック
三重引用符とstripMarginを組み合わせると、読みやすいコードと整った出力を実現できます。
各行は|で始まり、出力時にその文字が削除されます。
object Main extends App {
val report = """Report
|Total: 5
|Done!""".stripMargin
println(report)
}カスタムマージン文字
|がテキストと競合する場合は、stripMarginに別のマージン文字を渡せます。
たとえば、代わりに#をマージンマーカーとして使えます。
val s = """One
#Two""".stripMargin('#')
println(s)補間を使った複数行文字列
三重引用符とs補間子を組み合わせて、複数行テキストに値を挿入できます。
開始する三重引用符の前にsを置き、通常どおり$variableを使います。
val name = "Sam"
val msg = s"""Hi $name,
|Welcome aboard!""".stripMargin
println(msg)SQLクエリの作成
複数行文字列は、バックエンドコードでSQLやその他の長いテキストを書くときに特に役立ちます。
ソースコード内でも出力でも、レイアウトを読みやすく保てます。
val query = """SELECT id, name
|FROM users
|WHERE active = true""".stripMargin
println(query)引用符の中の引用符
三重引用符の内部では、通常の二重引用符をエスケープする必要がありません。どこにでも\"と書く煩雑さを避けられます。
JSONや引用されたフレーズを埋め込むのに最適です。
val line = """He said "hello" to me"""
println(line)メソッドとの組み合わせ
複数行文字列も通常のStringなので、普段使うすべてのメソッドを適用できます。
ここではマージンを削除した後、前後の空白を取り除き、長さを数えます。
val block = """abc
|def""".stripMargin
println(block.length)
println(block.toUpperCase)確認問題
複数行文字列から先頭のインデントを削除するにはどうすればよいでしょうか。
まとめ
三重引用符"""..."""を使って、改行を維持し、引用符のエスケープも不要な複数行テキストを書く方法を学びました。
|マーカーとstripMarginを使ってコードを整え、s補間子と組み合わせ、結果に通常の文字列メソッドを適用しました。
よくある質問
「複数行文字列」レッスンは無料ですか?
はい。「複数行文字列」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Scala for Backend Engineering & Functional Programmingコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Scala for Backend Engineering & Functional Programmingコースには全4レッスンが含まれています。
「複数行文字列」で何を学びますか?
三重引用符のブロックを使います。 ブラウザで直接実行するハンズオンコードで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フィードバックを取得できます。ローカル設定は不要です。