こんにちは!
フリーランスエンジニアのかたやまです。
今回は、型について解説します。
型は、プログラミング学習で必ず出てくる考え方の1つです。プログラミングで必ず使う考え方なので、全員が理解しておくべき内容です。
難しいコードは書かずに、簡単に解説していくので、ぜひ最後までご覧ください。
では、始めましょう!
型って何?
型を一言で表すと、「データの種類のこと」です。
前回の変数の解説では、変数とは「データを入れる箱」であると説明しました。この変数(箱)に入れるデータの種類を定めたものが型です。
例えば、データの種類として文字・数字・日付などがあります。
プログラミングでは、変数をつくる(宣言する)ときに、その変数(箱)にどんなデータの種類を入れるかを指定する必要があります。
型が必要な2つの理由
型を決めるなんて面倒くさい!と思った方もいると思います。実際に私もそうでした。そこで、型について詳しく解説する前に、なぜプログラミングにとって型が必要なのか学んでおきましょう。必要な理由は2つあります。
1.プログラミングは「解釈」してくれない
1つ目の理由は、プログラミングは意図を解釈してくれないからです。
プログラミングには、「言われた通りに動くが、言ったこと以外はやらない」という特徴があります。プログラムが気を使って解釈してくれることは無く、常に「明確な指示」が必要不可欠です。
例えば、型を指定していない変数に「1」というデータを渡しても、プログラム側はどのように処理したらいいのか分かりません。
- メッセージに使う文字のこと?
- 計算に使う数字のこと?
- 1日であることを表す日付のこと?
このように、どのように「1」というデータを扱えば良いか分かりません。プログラミングは「解釈」する能力が無いので、渡すデータの種類を教えてあげる必要があります。
2.処理が遅くなることを防ぐ
2つ目の理由は、処理が遅くなることを防ぐためです。
型を指定しない場合、処理が遅くなります。処理が遅くなる理由を理解するために、先に「メモリ」を理解しておきましょう!
全てのパソコンには、「メモリ」と呼ばれる作業場があります。パソコンを購入するときも、「メモリ〇GB」と説明があり、必ず目にする情報です。メモリは机をイメージすると分かりやすいです。変数をつくると、メモリに変数が置かれます。
このメモリと変数の関係によって、処理の速さは変わります。
- メモリ(机)に変数(箱)の合計サイズが大きいと、処理が遅くなる
- メモリ(机)に変数(箱)が合計サイズが小さいと、処理が速くなる
※合計サイズは、変数のサイズと変数の数によって決まります。
このようにメモリは使いすぎると、処理が遅くなってしまいます。型の役割は、このメモリを無駄遣いしないように、変数のサイズを調整してくれることです。
例えば、以下の2つを比較してみましょう!
- 型=日付の場合、「2021/01/01」のような日付だけ入ればよいので、変数(箱)のサイズは小さくてOK
- 型=なしの場合、文字・数字・日付のどのデータが入ってもいいように、変数(箱)のサイズは大きくしなければならない
用途にあった変数(箱)のサイズにして、処理が遅くなることを防ぐために、型は必要になります。
【補足】型が不要なプログラミング言語が存在する
ここまで型の必要性について解説しましたが、型が不要なプログラミング言語も存在します。
実際に、スクリプト言語と呼ばれるプログラミング言語は型の無いものが多いです。例えば、PHPやJavaScriptなどです。型がない理由は、スクリプト言語の特徴が「複雑ではないちょっとした処理」を扱うからです。
ただし、大多数のプログラミング言語では型が必要です。ぜひ、理解しておきましょう。
代表的な3つの型
具体的な型を紹介します。代表的な型は、3つあります。
1.文字列
1つ目の型は、「文字列」です。
文字列とは、「こんにちは」や「ABCDEFG」などです。画面に表示するメッセージや、ユーザーが入力した名前や住所を入れるための型として使われます。
2.数字
2つ目の型は、「数字」です。
数字とは、「100」や「3.141592」などです。計算が必要な数字や、順番を表す数字を入れるための型として使われます。
3.日付
3つ目の型は、「日付」です。
文字列とは、「2021/01/01」や「2021/01/01 12:00:00」などです。画面に表示する日時や、ユーザーが入力した誕生日の入れるための型として使われます。
他にもたくさんの型がある
今回は3つだけ紹介しましたが、他にもたくさんの型があります。例えば、数字の型は小数点あり/なしによって型が違ったりします。まずは型の全体イメージを掴むために、全ての型の説明は省略しました。気になる方はぜひ、詳しく調べてみてください。
型で気をつけること
変数で気を付けるポイントは2点あります。
1.違う型のものは、足したり引いたりできない
1つ目の気を付けるポイントは、「違う型のものは、足したり引いたりできない」です。
例えば、以下のようなことはできません。
- 変数A(型=文字)に入った「1」というデータと変数B(型=数字)に入った「2」というデータを足し算する
- 変数A(型=文字)に入った「こんにちは!」というデータと変数B(型=数字)に入った「3」というデータと変数C(型=文字)に入った「歳の〇〇くん!」というデータを繋げてメッセージを作る
このように型が違うもの同士は、足し算したり、繋げてメッセージを作ったりすることができません。この問題の解決策は、次に紹介する「型の変換」です。
2.型は変換できる
2つ目の気を付けるポイントは、「型は変換できる」です。プログラミング用語で「キャスト」と呼ばれています。
型は、違う型に変換することができます。例えば、以下の3つの変数があった場合を考えてみましょう。
- 変数A(型=文字)に入った「こんにちは!」
- 変数B(型=数字)に入った「3」
- 変数C(型=文字)に入った「歳の〇〇くん!」
この3つを繋げてメッセージを作りたくても、変数Bの型が異なるのでできません。対策として、変数Bの方を数字→文字に変換します。変換することで変数ABCがすべて文字になり、メッセージを作ることができます。
型が変換できない場合もあります。例えば、文字の「こんちには!」は、数字に変換することができません。数字として扱うことができないからです。
このように型を変換することができるということは、何となく理解しておいてください。
まとめ
今回の「型」は以上です。
簡単にまとめると、型は「データの種類を決めること」と理解していただければOKです。
では、また次回!