【Swift講義②】データ型の理解

その他
カテゴリ検索

Swiftはデータ型(Data Type)に厳格な言語であり、データ型を理解せずしてコードを書くのは難しいです。

 

前回はデータ型を紹介するために、クラス・インスタンス・プロパティ・メソッドについて解説しました。

【Swift講義①】クラス、インスタンス、プロパティ、メソッドの理解
プログラミングを勉強しだしてある程度色々なものが作れるようになりました。 自分のアウトプットの意味も込めて、これからSwiftでiOSアプリを開発したいと思っている方に向けて最初に理解すべきこと(最初に勉強しておくと後...

 

今回は、そんなデータ型について紹介していきます。



データ型とは

 

Swiftという言語を使用してコンピュータと会話をするにあたり、変数を宣言することがあります。

 

例えば、numberという変数を定義する場合を考えます。

このnumberという変数を、リンゴの数とミカンの数を足したものにしたいなあと考えた場合、すぐに思いつくのは

var number = apple + orange

のように、numberという変数はappleという変数とorangeという変数の合計値ですよということをPCに伝えるこんな感じのコードを書くことだと思います。

 

しかしPCからすればそもそもappleてなに?orangeとは?状態なので、まずはこれらについて教えてあげる必要があります。

 

ここで、実際にappleやorangeについての情報をPCに伝えるのですが、今回のように合計値を出そうとして足し算をする場合、これらは果物ではなくて、個数という数字(合計値を出そうとしているから)を表しているんだよと教えてあげたいのです。

 

ここで使用するのがデータ型です。

// データ型を使わない変数の宣言

var apple = 3

// データ型を使った変数の宣言

var apple: Int = 3

このように、appleという変数が数字(Int型)であることを伝えるために、:で区切ってデータの型を指定してあげるのです。

<他のデータ型>

(参照:https://sites.google.com/site/fswifttips/home/basic/hensu/-deta-xing-yi-lan

 

Swiftでは、このデータ型を使うことによって変数の管理を行っています。

そのため、データ型の不一致が原因で生じるエラーというものが多々あります。

例えば、

// appleという変数は数字(Int型)の3であると定義

var apple: Int = 3

// appleという変数にリンゴという文字列(String型)を代入する

var apple = "リンゴ"

// 先に定義したInt型と後で代入したString型が一致していないためエラーが起きる

このように、最初にデータ型を宣言した場合はそのデータ型に合ったモノしか代入できないため、データ型を厳守していないとエラーが起きてしまいます。

 

そのような点で、Swiftはデータ型に厳格であるといわれています。

 

もう少し現実的かつ具体的な例を紹介します。

変数の宣言の場合、var 変数名: データ型 という風にデータ型を指定しますが、関数の場合は func 関数名() -> データ型 という風にデータ型を指定することによって関数の処理の結果呼び出される戻り値のデータ型を指定することができます。

// 255円の商品の税込み価格を計算する関数を作る。値はInt型で返してもらうように設定する(-> Int)

func taxPrice() -> Int {
    
      return 255 * 1.1
}

taxPrice()

上記のコードではエラーが出てしまいます。

なぜなら、関数のとこで戻り値(計算結果の値)Int型で返すように指定しているのに、255に1.1をかけ算しているからです。

計算結果は280.5となり、これ(戻り値)はDouble型であるため、関数にInt型で返せと要求したこととつじつまが合いません。

 

もっとも、Swiftには色々な型があるため関数や変数を使う際にはよく注意しなければなりません。

次はオプショナルなデータ型やキャストの方法などについて解説しようと思います。

 



独学での勉強に限界を感じたら、プログラミングスクールに通うという手もあります。
<Udemy>

管理人が勤務している大手会計事務所でも導入されており、その他ソフトバンクなど超大手企業でも導入されているオンライン学習サービスです。



<Tech Academy>

最短4週間で未経験からプロを育てるオンライン学習サービス。

分からないことは現役プロの講師に直接質問ができます。


<Tech Camp>

将来的にエンジニアとして自由に働きたいという方にオススメ。

就職活動の支援までしてくれるオンライン学習サービスです。



<Aidemy>

3か月集中講座でAIを使ったアプリ(VR/ARなど)が作れるように一気通貫してサポートする学習サービス。

画像認識を使ったアプリ開発に興味がある方はオススメです。



 

次回もお楽しみに。



 

 

コメント

タイトルとURLをコピーしました