*

Swiftの基本を理解する。型と型推論。

      2014/09/08

PAK88_gomiokibamaenohato20140315500
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"

最後に

型推論を使うとコード量が節約できるメリットがあります。

一方、あらかじめ型を定義すればコード量が多くなる分、値の設定の間違いを防げますし、ソースの可読性はあがります。

どちらもメリット、デメリットはあるので、そこを押さえて使い分けをしていきましょう。

それと、ゴミの分別はきちんとしましょうね。

 - Swift