はじめに
本記事では、タプル型について理解するために内容をまとめます。
タプル型とは
複数の型をまとめて1つの型として扱える型をタプル型といいます。
異なる型を混ぜて格納できるため、簡単なデータの組み合わせを使いたい時に便利です。
タプル型を定義するには、要素となる型を()内に、,
区切りで(型名1,型名2,型名3)
のように列挙します。
タプル型の要素にはどのような型も指定でき、要素数にも制限はありません。
タプル型の値はタプルといい、タプルを生成するには、型名と同様に要素となる値を()内に,
区切りで(要素1,要素2,要素3)
のように列挙します。
上記の例では、(Int, String)型の変数tupleに、タプル(1, "a")を代入しています。
要素へのアクセス
タプルの要素へのアクセス方法には、インデックスによるアクセス、要素名によるアクセス、代入によるアクセスの3つがあります。
インデックスによるアクセス
変数や定数に.
をつけて、変数名.インデックス
という書式でアクセスします。
最初の要素のインデックスは0で、1,2と続いていきます。
上記の例では、(Int, String)型のタプル(1, "a")の各要素にインデックスでアクセスしています。
tuple.0
は1つ目の要素1を返し、tuple.1
は2つ目の要素"a"を返します。
要素名によるアクセス
タプルの定義時に各要素に要素名をつけ、その名前を通じて要素にアクセスすることができます。
要素名を定義するには、タプルの要素の前に要素名:
を追加して、要素名1: 要素1, 要素名2: 要素2
のように書きます。
上記の例では、(Int, String)型のタプルの要素にそれぞれint、stringという名前を定義し、tuple.int
、tuple.string
で各要素にアクセスしています。
代入によるアクセス
タプルは、()内に,
区切りで列挙された要素数分の変数や定数に代入できます。
タプルの要素には、代入先の変数や定数を通じてアクセスできます。
上記の例では、Int型の定数intとString型の定数stringを()内に列挙し、タプル(1, "a")を通じて、これらの定数に一度に値を代入しています。
また、()内に複数の変数や定数を同時に宣言することもできます。
上記の例では、定数intと定数stringを()内で宣言すると同時に、タプル(1, "a")を用いて初期化しています。
Void型(空のタプル)
要素の型が0個のタプル型をVoid型といいます。
Void型は値が存在し得ないことを表す型です。
Void型は、関数の戻り値がないことを表す用途などで使用されます。
上記の例のgreet関数は、print関数を用いて文字を出力するだけで関数の呼び出し元には何も値を返さないため、戻り値としてVoidを指定しています。
また、戻り値が不要な場合、関数宣言での戻り値の型(Void)の定義を省略できます。
上記の例はVoidを省略した形です。
まとめ
- 複数の型をまとめて1つの型として扱える型をタプル型という
- タプルの要素へのアクセス方法には、インデックスによるアクセス、要素名によるアクセス、代入によるアクセスの3つがある
- 要素の型が0個のタプル型をVoid型といい、値が存在し得ないことを表す
- Void型は関数の戻り値がないことを表す用途で使用され、記述を省略できる