今回はSwiftの変数と定数について説明しますね~

私もSwiftの変数と定数についてネットで調べましたが

全くの初心者に対して意味がわからない記事ばかりなので^^;

私が初心者でもわかるように説明します。

変数とは?

前回でも説明しましたが変数は「数値、文字列などを入れておく箱」と思えばいいです。

変数の値は何度でも変更することができます。

変数の宣言は以下の形式で宣言します。

var 変数名:型式  = 初期値

 

下に変数の宣言例を記載します。

変数名は自分が好きな名前をつけることができます。

変数名は英数字だけではなく日本語の変数名にすることができます。

var num:Int = 100
var 文字列:String = "仕事面倒くさい〜"
var dbl:Float =  3.14

 

型式は変数のどういう型式でデータで入れたいか設定します。

型式は主に以下のものがあります。

型式読み方説明
Stringストリング文字列を格納できます
Intイント、インテジャー符号有の整数型を格納できます。「-100」などの負の値も入れることができます。
Uintユーイント整数型を格納できますがIntと違い「-100」などの負の値は入れることができません。
Floatフロート32ビット浮動小数点を格納できます。「0.01」などの小数を含む数値を入れることができます。
Doubleダブル64ビット浮動小数点を格納できます。Doubleの方が多くの桁数を扱えます。
Boolブール、ブーリアン論理値型を格納できます。論理値とはtrue(真)、false(偽)の二つの値をいいます。後に説明する制御構文の条件判断でよく使われます。
Arrayアレイ配列型になります。次回以降に説明します。
Dictionaryディクショナリー辞書型になります。次回以降に説明します。

以下はサンプルプログラムです。

var str:String = "こんにちは" //文字列型サンプル
var int:Int = 1234          //int型サンプル
var uint:UInt = 1234        //Uint型サンプル
var uint2:UInt = -1234      //マイナス値はエラーになります
var float:Float = 3.14      //Float型サンプル
var double:Double = 3.14    //Double型サンプル
var bool:Bool = true        //Bool型サンプル

型式を指定している場合は初期値は省略することができます。

var str:String //初期値を省略
str = "おはよう"
var int:Int    //初期値を省略
int = 1000

 

型推論とは?

型式は省略することができます。

型式が省略された場合は初期値から

型式が自動的に設定されます。これを型推論といいます。

var name = "t-higashi" //型推論よりStringになる
var age = 32           //型推論よりIntegerになる
var height = 178.8     //型推論よりDoubleになる

 

※型式を省略した場合は必ず初期値を設定しないといけません。

初期値を設定しないとどの型式にしていいか判断できないからです。

型式を省略して場合に初期値を省略した場合はエラーとなります。

var error //初期値と型を省略するとエラー

 

定数とは?

定数は変数と同じく「数値、文字列などを入れておく箱」ですが

一度設定した値は変更できません

変数の宣言の仕方は以下の形式になります。

let 定数名:型式  = 初期値

 

定数名、型式、初期値の設定方法は変数と同じです。

let str:String = "こんにちは" //文字列型サンプル
let int:Int = 1234          //int型サンプル
let uint:UInt = 1234        //Uint型サンプル
let float:Float = 3.14      //Float型サンプル
let double:Double = 3.14    //Double型サンプル
let bool:Bool = true        //Bool型サンプル
bool = false                //定数は値を変更するとエラーになります

 

いろいろな変数宣言の仕方

var num:Int = 1     //通常の変数の宣言
var num2:Int        //初期値を省略して後で設定
num2 = 2
let str = "String"  //型推論で定数を宣言

//1行で複数の変数を宣言 height、weightはDouble型になる
var height,weight: Double
height = 165.5
weight = 80.2

//定数name、adress、emailはString型になる
let name, address, email: String
name = "Higashi"
address = "Okinawa"
email = "hogehoge@gmail.com"

タプルとは

タプルとは複数の値を一組にまとめた機能をいいます。タプルは以下のように宣言します。

// 変数の場合
var 変数名:(型式1, 型式2, ...) = (値1, 値2, ...)

// 定数の場合
let 定数名:(型式1, 型式2, ...) = (値1, 値2, ...)

 

以下にタプルの宣言例を記載します。

var bookdata:(String, Int) = ("Swiftプログラミング", 2015)
let price:(Int, Int) = (100, 8)
var profile:(String, Int, Int)  // 初期値を省略できます

//型は省略できます。省略した場合は型推論で型が決まります
var product = ("iPhone6s", 2015)
let kisetu = (1, "春")

 

タプルの値を取り出したり値を変更する場合は

インデックス番号を使用して値を取り出したり変更したりします。

括弧の左側の値から順番にインデックス番号が0、1、2…と順番に番号が付けられます。

//インデックス番号で値を取り出す
var bookdata:(String, Int) = ("Swiftプログラミング", 2015)
var name:String = bookdata.0
var year:Int = bookdata.1

//インデックス番号で値を変更する
var profile:(String, Int, Int)
profile.0 = "t_higashi"
profile.1 = 36
profile.2 = 180

 

Playgroundで実行すると以下のようになります。

タプル Playground実行結果

 

タプリに以下のような形式でラベルをつけることができます。

ラベルを付けても付けなくても機能的には変わらないですが

ラベルをつけると値の意味がわかりやすくなります。

var 変数名:(ラベル:型式1, ラベル:型式2, ...) = (値1, 値2, ...)

 

以下にラベルの使用例を記載します。Playgroundでの実行結果は上図のインデックス番号での実行結果と全く同じになります。

//ラベルで値を変更する
var profile:(name:String, age:Int, height:Int)
profile.name = "t_higashi"
profile.age = 36
profile.height = 180

 

まとめ

  • 変数、定数の型式はString、Intなどの様々な型式がある
  • 型式と初期値は省略できる
  • 型式を省略した場合は初期値から型式を自動的に設定する。このことを「型推論」という
  • タプルで複数の値を一組にまとめることができる

次回は上記で説明した変数、定数をどう計算して利用するかについて説明しますね〜