タプルを作成する
関連する値をまとめます。
「タプルを作成する」はCoddyKit上の無料Scala for Backend Engineering & Functional Programmingレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはScala for Backend Engineering & Functional Programming学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Scala for Backend Engineering & Functional Programmingコースには全4レッスンが含まれています。
タプルとは
タプルは、値の型が異なる場合でも、固定個数の値をまとめて扱うものです。
すべての要素が同じ型であるリストとは異なり、タプルにはInt、String、Booleanを一度に格納できます。
関連する少数の値を返したりまとめたりする際に、クラス全体を定義せずに済むため、タプルは最適です。
最初のタプルを作成する
タプルは、カンマで区切った値を丸括弧で囲んで作成します。
ここでは名前と年齢を組み合わせています。Scalaが型を自動的に推論します。
val person = ("Alice", 30)
println(person)自由に型を混在させる
タプルの優れた特徴の1つは、1つの値の中で型を混在させられることです。
このタプルにはString、Int、Booleanがまとめて格納されています。各要素はそれぞれの型を保持します。
val record = ("Bob", 42, true)
println(record)タプルの型
タプルの型には、すべての要素の型が順番どおりに示されます。
StringとIntの組は(String, Int)型です。明確にしたい場合は型を明示的に書けます。
val pair: (String, Int) = ("Cara", 25)
println(pair)ペアはよく使われる
要素がちょうど2つのタプルはペアと呼ばれ、Scalaのさまざまな場面で使われます。
たとえば、マップはキーと値のペアから構築されます。まずペアを学ぶと、その後の言語機能も理解しやすくなります。
val score = ("Math", 95)
println(score)ペアの矢印構文
2要素タプルには、Scalaが便利な矢印構文を提供しています。
key -> valueと書くことは、(key, value)とまったく同じです。特にマップを構築するときに読みやすくなります。
val entry = "name" -> "Dana"
println(entry)より大きなタプル
タプルには2つや3つを超える値も格納できます。
Scalaは最大22要素のタプルをサポートしていますが、小さなタプルのほうが読みやすいでしょう。多くのフィールドが必要な場合は、通常はcase classのほうが明確です。
val data = (1, 2, 3, 4, 5)
println(data)要素が1つの場合の注意
実用的な1要素タプルはありません。1つの値を丸括弧で囲んでも、その値自体が返されるだけです。
したがって(5)はタプルではなく、単に数値5です。タプルは実際には2要素から始まります。
val notATuple = (5)
println(notATuple)タプルは不変
いったん作成したタプルの値は変化しません。
この不変性により、タプルは安全に共有でき、動作も理解しやすくなります。別のタプルが必要な場合は、新しいものを作成します。
val a = (1, "one")
val b = (2, "two")
println(a)
println(b)複数の値を返す
タプルの一般的な用途は、関数から複数の値を一度に返すことです。
ここでは関数が合計と積の両方を1つのタプルとして返しているため、別のクラスを定義する必要がありません。
def stats(a: Int, b: Int) = (a + b, a * b)
println(stats(3, 4))タプルの入れ子
タプルも単なる値なので、別のタプルの中に配置できます。
これにより、関連するサブペアをまとめられます。コードを読みやすく保つため、入れ子は浅くしてください。
val nested = (("x", 1), ("y", 2))
println(nested)確認問題
タプルの作成について学んだことを確認しましょう。
まとめ
タプルは、型が異なる可能性のある固定個数の値を、丸括弧の中にまとめるものだと学びました。
ペアではkey -> value構文も使えます。タプルは不変で、複数の値を返すのに適しています。次は、それらの値を取り出す方法を学びます。
よくある質問
「タプルを作成する」レッスンは無料ですか?
はい。「タプルを作成する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと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は初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「タプルを作成する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このScala for Backend Engineering & Functional Programmingレッスンでコードを書いて実行できますか?
はい。すべてのScala for Backend Engineering & Functional Programmingレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。