どうもごきげんよう、虫になった夢を見たと思っていたら『変身』を読んでいただけだったさいほうへいきです!
今回はこの比較的まともな技術記事から実に一ヶ月ぶりの技術系記事です。

今回のテーマはデータ型! そのうち特に、どの言語にもあるような基本的な変数型をわかりやすく解説していきます。
簡単なデータ型はプログラミングだけでなく、一部のゲームやツール操作などでも使うときがあります。そのため知っておいて損はないんじゃないかな?
データ型とは
まず初めにデータ型とは、プログラムで扱われるさまざまな情報の種別です。
と言ってもプログラミング初心者の方からすると「は?」という感じだとおもうので、具体例を軽く挙げますね。
たとえば『整数』『文字列』というものがあります。これらがそれぞれデータ型で、パソコンは数のデータ、文字のデータをキッチリ分けて管理している、というわけ。
一般的に『250』は整数型ですし、『Apple』は文字列型になるということです。
これらはとても基本的なものなので、ほとんどすべてのプログラミング言語に類似の概念が実装されています。
また、『イベントトリガー』『データファイル』『3D立体』などの発展的なものも無数に存在しますが、基本のものではないので今回は割愛します。
基本データ型まとめ
いくら整数型とはいっても言語によって呼び方が異なったりするので、メジャーな呼び名をいくつか例示していこうと思います。
整数型(int)
整数型。Int、Integerとも。たとえば『308』『-2026』などの数を扱えます。
その名の通り整数を扱うもので、分数や小数、虚数などは直接扱えません。
またパソコンのメモリは有限ですから必然的に扱える上限値があり、その上限値によってさらに細かく区分分けされます。

小数型(float、double、decimal)
小数型。通常の整数に加えて、『99.974』『-273.15』といった数を扱えます。
桁数は非常に詳しく扱えますが、計算の効率化の過程でちいさなミスが起こることも多いです。
文字型(char)
文字型。たとえば『A』『あ』など。実装によっては『🍔』『🦠』などの絵文字も扱えます。
文字列ではなく文字というところに注意が必要です。プログラミングでは文字と文字列は大きな違いがあり、文字は『A』など一文字だけ、文字列では『Android』など長い文章を扱うことができます。
少し小難しい話にはなりますが、もともとアルファベット文字は一バイトで表現されていたのもあり、言語によって一バイト文字だけなのか、二バイト文字も対応しているのか、四バイトも行けるのかと差異があります。
文字列型(string)
文字列型。strと略されることも。『Alternate』『I have a pen』『僕の好きな絵文字は🪅です。』などの文字列データを扱います。
実装にもよりますが長さはほぼ無制限で、どれだけでも長い文章を書くことができます。俳句一句でも、文庫本一冊でも、何十冊もある小説シリーズもすべて対応できます。
真偽値型(bool)
真偽値型。booleanとも。
真偽値と言われると聞き馴染みがないかもしれませんが、要するに真もしくは偽、もっと分かりやすく言うなら『はい』『いいえ』の二択だけを収納できるということです。
たとえばゲームで『フラグが立った』という言い方をしますが、『イベントが成立したか?』のイェスノーはこの真偽値型で表現することができます。
実はすごく出番が多いので、知っているとかなりレベルが上がりますよ。たぶん。
オブジェクト型(object)
オブジェクト型。
オブジェクトってなんぞ?という感じですが、つまるところ何でもオッケーなオールマイティくんです。
例としてC#では、ありとあらゆるデータ型はこのオブジェクトの子として実装されていて、その親たるオブジェクトは文字列型も、整数型も、他のすべてのデータ型を受け入れます。
つまり、オブジェクトが要求されるときは、くれるデータはなんでもいいよということです。
ただしオブジェクトはやや不便もあるので、すべてのデータをオブジェクトとして扱うのはあまり向いていなかったりします。
配列(array)
配列はすこし特殊です。
配列は他のデータ型と組み合わせて、複数のデータのリストを表現することができます。
たとえば整数型の配列では、『1、1、2、3、5、8、13』など複数の数を並べて表現できます。今回挙げたのはフィボナッチ数列ですが、こんな風にたくさんの数の集合を表せます。
ほかにも文字列型の配列では『みかん、牛乳、小麦粉、お砂糖』など文字列を複数表現できます。買い物リストみたいになってしまいましたが、もちろん小説の一巻二巻三巻……という配列も作れます。
別に面白くはない小ネタですが、昔は文字列型というのが存在しない言語もあり、その場合は『文字型の配列』を利用して文字列型を実装していたこともありました。
兄弟のようなものに『リスト』と『辞書』もありますが、ここでは割愛します。
void
ヴォイド。かっこいいとかいうのはさておき、これも非常に特殊なデータ型です。
まず、データを扱う際にこのデータ型は利用できません。なんか根本からちゃぶ台返ししているような感じですが、これはデータを表現するためではなく、関数において『返すデータはない』ことを示すために使われます。
関数の解説は面倒だし主題じゃないので短い例え話だけしますが、たとえば機械がここにいくつかあるとします。
自動販売機にお金を入れて起動するとコカコーラがもらえます。この場合、コカコーラが関数から返されるデータのようなもので、データ型は『飲みもの』です。
同様にレンジに冷めたピラフを入れて起動すると、温かいピラフが手に入ります。このケースではピラフがデータで、データ型は『食べもの』としましょう。
では、ここで懐中電灯を起動するとどうでしょうか? 光りますよね。
でも光るだけで、コカコーラも温かいピラフももらえません。つまり、データが返されないのです。これをプログラムで表現する時に、『voidを返す』と表現するのです。
他のデータ型
上記でメジャーなデータ型はあらかた挙げましたが、世の中にはほかのデータ型がたくさんあります。というか、必要に応じてプログラマーが新しいデータ型を作るので、データ型は無限に存在し得ます。
あまり詳しくは解説しませんが、年月日を扱う『日付』やRGBAの『色』、形や座標を扱う『3D立体』などなど。
これらは上記の基本的なデータ型を組み合わせて作られているので、やろうと思えば僕もあなたも新しいデータ型を作れます。
ゲームを作る際などはそのゲームの独自システムに合わせた型を作ることも当たり前で、たとえば、満腹度・隠し満腹度などを扱う『食べもの』や耐久値や素材のレベル、攻撃力などを扱う『ツール』などがMinecraftにあります。
まとめ
というわけで、今回はメジャーな変数のデータ型をまとめました!
プログラミングにおいては基本的な知識になりますし、他のシーンでも使うことがちょくちょくあるので、ぜひぜひ覚えておきましょう。


では、今回はここまで!
さいほうへいきでした。

コメント