Swiftを使った開発で基礎の基礎となる変数(var)の宣言の仕方を知っていますか?
変数とは名前のついたデータ領域を指しており、一時的に値を保存することが出来ます。
今回の記事では、プログラミング初心者向けに変数(var)の宣言の仕方を解説します。
また変数を使った例として、四則演算のやり方を取りあげます。
変数を使い方を理解していないとアプリ開発は100%出来ません。
なるべく分かりやすくコード付きで解説しますので、今回の記事を読んでしっかりと理解してください。
・プログラミングにおける変数とは??
・変数の宣言方法-2種類
・変数による四則演算
・キャスト(型変換)について
・合わせて読みたい記事一覧
プレイグラウンドって何?って思った方は過去記事を参照してください。
【Swiftのお勉強】プレイグラウンドを使ってSwiftを勉強しよう!- SwiftUIアプリ開発基礎
Swiftのオススメの勉強法はこちらで紹介しています。
SwiftUIでアプリ開発を始める時の勉強法。どうする?
1.【Swiftのお勉強】変数とは?
プログラミング超初心者のためのお話しです。
少しでもプログラミングを学習した事がある人は読み飛ばしてください。
1.変数について
変数とは、名前の付いたデータ領域で、プログラミングにより処理される値を一時的に保存できる空間のことです。
一時的に保存するだけなので、値の書き換えが可能となっています。
変数を定義するときは、基本的に変数の名前と型(type)の指定が必要なのですが、Swiftの場合は型を宣言しなくても自動的にどの型が当てはまるのか推論してくれます。これを”型推論機能“と言います。
プレイグラウンドのテンプレートでは、この型推論機能を使った形で変数の宣言がされてます。
“型推論機能”を使わない宣言の仕方もあり、その場合は”型アノテーション“を使用します。型アノテーションについては後ほど説明します。
この時点で型ってどんなものがあるんだろう?イメージがわかない。。
と思った人がいるかもしれませんので、よく使われる型について少し説明をします。
2.型の種類
- String
テキストを保管する為の型です。
宣言するときは””(ダブルクォテーション)で囲みます。 - Int
整数を保管する為の型です。
Intにはいくつかの種類があって用途に応じて使い分けることができます。 - Float
実数を保管する為の型です。
値のサイズは32bit幅となっています。 - Double
実数を保管する為の型です。
値のサイズは64bit幅となっています。
Floatと似ていますが、Floatよりもさらに大きなサイズの実数を定義できます。“型推論”ではFloat型ではなく、Double型が優先されます。 - Bool
論理型です。
“真: true”, “偽: False”を表す型で、”正しいか?そうでないか?”の判定を行うときに使用します。
If文で使用する事が多いですね。
初心者には使いどころが難しい型かもしれませんが積極的に使用していきましょう。
その他にもCharacterやUInt8、UInt16など様々な型が存在するのですが、使用頻度の高い型の紹介だけに留めておきます。
2.【Swiftのお勉強】変数の使用の仕方
1.変数の宣言と値の代入の仕方について
変数の宣言の仕方について解説します。
初めの方でも解説した通り、変数の宣言の仕方には2通りの方法があります。
- 型アノテーションを使用する方法
- 型推論機能を使用する方法
まずは、型アノテーションを使用した方法から解説します。
1. 変数の宣言(型アノテーションを使用する場合)
まずは、例を示します。
var str:String = "Hello, Shiro blog"
これを日本語で書き直すと、以下のようになります。
var [変数の名前][型アノテーション] = "変数に保存する値"
・var
変数を宣言する時には”var“という文字を使います。
これから変数を宣言しますよというお約束ごとのようなものですね。
今回は説明しませんが”var“の他に”let“という定数を宣言する為の文字もあります。
・str
“str“は”変数の名前“です。
使用用途が分かるような名前にするとコードの可読性が上がって良いです。
今回はString型を宣言しているので頭文字をとって、”str“としています。
・:String
“:String“は”型アノテーション“と呼ばれます。
型アノテーションとは、“:”と”型”で構成されソースコードを書く人が型を明示的に宣言する時に使用されます。今回は、これはStringですよと宣言しています。
・“Hello, Shiro blog”
“Hello, Shiro blog“は、”変数に保存する値”を示しており、ここで宣言した値が”str(変数の名前)”に保存されます。
2. 変数の宣言(型推論機能を使用)
こちらも最初に例を示します。
var str = "Hello, Shiro blog"
これを日本語で書き直すと、以下のようになります。
var [変数の名前] = "変数に保存する値"
型アノテーションを使用した方法と比べてみてください。
型アノテーションがなくなっているだけとなっています。
コード量も少なく、簡単に記述出来るので非常に便利ですね。
3. 変数の宣言で”型アノテーション”を使うべきか、使わないべきか?
型推論機能を使った方が変数の宣言は非常に楽です。
逆に型アノテーションを使用するとコード量が増えますし、変数を宣言する時に型アノテーションを毎回記述するのは面倒です。
それでは型アノテーションって面倒なだけで使用メリットがないのでしょうか?
答えはNoです。
型アノテーションを使用するメリットを以下に示します。
- メモリを節約したい時
これは、Float型とDouble型を例に出すと分かりやすいでしょう。
Float型は32bitのメモリ領域を確保するのに対して、Double型は64bitのメモリ領域を確保します。Float型で十分に収まる数値を定義しようとしているのに、Double型を使用すると過剰にメモリを確保してしまいます。 - コーディングミスを防ぎたい時
String型の宣言を行ったつもりがInt型で宣言されていたなんて場合があるかもしれません。
例えば下記のように宣言した場合どうなるでしょう?
エラーにはならずにコンパイルが通ります。
この時、”” (ダブルクォテーション)囲んでいないのでInt形で宣言されてしまっています。var str = 1234
型アノテーションを使用していれば下記のように宣言段階でエラーに気づく事ができます。
- 関数の引数が型推論機能で宣言できないものであった場合
これは少し難しい話になります。
開発を行っていると他の開発者が作成した関数を使用する機会があると思います。
そんな時に関数の引数がFloat型になっている場合、型アノテーションを使用してFloat型を宣言する必要があります。 - ソースコードの可読性を上げたい時
複数人での開発時や個人で開発してて後でソースコードを見直したい時など、作成したソースコードの可読性は重要になってきます。
型アノテーションを使用した方が、宣言した変数がどう言った型で宣言されているのか直ぐに判断できます。
面倒ではありますが、こう言ったメリットがあるので状況に応じて使い分けるのが良いと思います。
2.変数を使った四足演算
最後に変数を使用する例として四則演算を行っていきたいと思います。
1. 同一の型での四則演算
まず、同一の型で定義された変数の四則演算の例を示します。
実際のコード例を上の画像に示しました。
変数の宣言はそれぞれ”total”, “value1”, “value2″となっており、全てInt型(整数)です。
value1とvalue2を組み合わせて四則演算を行い、totalに値を保存しています。
totalは変数なので、途中で何度も値の変更が可能となっています。
計算時の記号はそれぞれ以下を使用します。
- 足し算→ +
- 引き算→ –
- 割り算→ /
- 掛け算→ *
- 割り算の余り→ %
2. 異なる型での四則演算
異なる型での四則演算をした場合はどうなるでしょうか?実際にやってみましょう。
実行結果はエラーとなりました。
ここでいくつか解説します。
・型推論機能での型の決定について
まず、数値の定義を行う時に小数点付きで宣言するとDouble型として定義されます。
小数点がない場合は、Int型です。
・変数の型の確認について
21,22行目ではtype(of: )という関数を使用していますが、型の定義を確認できる関数です。
実行結果を見てみると、それぞれDouble型とInt型で定義されている事が分かります。
最後に24行目で、異なる型の足し算をしていますが、以下のエラー文にあるように異なる型での足し算は出来ないと怒られてしまいます。
答えは出来ます。
四則演算をする時のみ型を無理やり揃えてしまえば良いのです。
キャスト(型変換)により、Int型である”value4″を計算の時だけDouble型にしています。
型名(値)
他の型も同様にキャストで型を変更する事ができるので試してみてください。
3.【Swiftのお勉強】まとめ
“変数の宣言の仕方”から”四則演算の仕方”や”キャスト(型変換)”について紹介してきました。
ここまで学習すれば変数の宣言の基礎は理解出来たかと思います。
コメント