Swift問わず、ブログラムの変数や定数には型と呼ばれるものがあります。
例えば以下の通りです。
Int:整数値
Double:小数点を含む数値
String:文字列
Calactar:1文字
上でお分かりの通り、型は値の性質になります。
例えはかなり悪いですが、値はゴミ、型はゴミの種類、変数はゴミ箱と考えてもらえると捉えやすいと思います。
値:ゴミ
型:ゴミの種類
変数(or定数):ゴミ箱
ゴミはゴミでも、燃えるゴミ、プラスチック、缶、瓶、燃えないゴミと、その種類は様々で、それぞれの種類にあったゴミ箱に入れる必要がありますよね。
何故種類を分けるのでしょうか?
それはゴミ処理の方法がそれぞれ違うからです。
プログラムも同じです。
数値や文字列で、値の扱い方が異なるので型を分けているのです。
ですから、燃えるゴミのゴミ箱に缶ゴミを入れてはいけないのと同じで、変数の型と異なる値を入れることはできません。
var num : Int = 1 var num2 : Double = 10.0 var statement : String = "こんにちは" var letter : Character = "A" num = 5 //Int型に整数値を入れるのはOK num = "こんばんは" //Int型の変数に文字列を入れるのはNG letter = "AB" //Characterは1文字のみなのでこれはNG statement = "AB" //Stringは文字列なのでOK
型推論
Swiftでは型推論ができるようになりました。
これは格納される値から型推測して自動的に設定するものです。
var age = 20 //整数値が設定されたのでageはInt型と推測する。 var name = "Satoshi Matsunaga" //文字列が設定されたのでnameはString型と推測する。 age = 30 //Int型なので、これはOK age = 30.5 //Int型なので、小数点の値を入れるのはNG name = 50 //String型なので、整数値を入れるのはNG
例えば、新しくゴミ箱を買ったとましょう。
このゴミ箱が、どんなゴミを入れる物なのか、ゴミを入れるまで定義はされていません。
(本人は心の中で思ってるかもしれませんが、他人がみたらただのゴミ箱です。)
ですが、ゴミを一つ入れた瞬間に、そのゴミ箱が燃えるゴミ用か、燃えないゴミ用か、他人もわかるようになります。
「このゴミ箱には紙ゴミが入ってるから、燃えるゴミ用のゴミ箱なんだな」と推論できるわけです。
型推論も同じ考え方です。(かなり乱暴)
もちろん最初から、この変数にはこの型を入れると定義しても問題ありません。
//予め変数の型を明示的に決める。 var score : Int var result : Character score = 90 result = "A"
最後に
型推論を使うとコード量が節約できるメリットがあります。
一方、あらかじめ型を定義すればコード量が多くなる分、値の設定の間違いを防げますし、ソースの可読性はあがります。
どちらもメリット、デメリットはあるので、そこを押さえて使い分けをしていきましょう。
それと、ゴミの分別はきちんとしましょうね。
コメント