はじめに
どうも、プログラミング未経験で学習中のはるさんです。
この記事ではSwiftにおける値を表現する型について説明していきます。
Swiftには様々な型が用意されいていますが、今回はその中でも基本中の
基本である4つの型を説明していきます。
1. 真理値を表すBool型
1-1. Bool型の宣言と型推論
まず初めに真理値を表すBool型(ブール型)です。
真理値とはその値が真であるか偽であるかを表す型です。
真であればtrue
を、偽であればfalse
を返します。
Bool型の型宣言は 定数名(変数名): Bool = trueまたはfalseと記述します。
// テレビの電源は入っている
var isTvPower: Bool = true
// パソコンの電源は入っていない
let isPcPower: Bool = false
また、型宣言を省略することもできます。省略した形は以下の記述です。
// テレビの電源は入っている
var isTvPower = true
// パソコンの電源は入っていない
let isPcPower = false
上記のように、:
(コロン)に続けて型名を記述しなくても、
SwiftがBool型である「true」等が
代入されていることを見て、
「あ、これは変数isTvPwoer
はBool型だね」と推測してくれています。
このような記述方法をSwiftでは**「型推論**と読んでいます。
1-2. 3つの論理演算ー否定、論理積、論理和
論理演算とは真理値に対する演算で、その方法は3つ用意されています。
否定
否定とは、真理値を逆さまにする論理演算です。例は以下の通りです。
// 電源は入っている
var isPower = true
// パソコンの電源は入っていない
var isPcPower = !isPower
上記の例でいくと最初に変数電源はtrue
と宣言しましたが、2行目で
!
をisPower
の前に
つけることで逆の意味を持たせています。
論理積
論理積とは、与えられた真理値を照らし合わせて、すべてが真であれば真となる演算です。
let apple = false && false //false
let orange = false && true //false
let banana = true && false //false
let grape = true && true //true
上記の例の様に真理値と真理値の間いに&&
(アンドを2つ)と記述します。
結果、左辺と右辺が
true
となる定数grape
だけがture
を返しています。
論理和
論理和とは与えられた真理値のいずれかが真であれば真となる演算です。
let apple = false || false //false
let orange = false || true //true
let banana = true || false //true
let grape = true || true //true
上記の例の様に真理値と真理値の間いに||
(パイプラインを2つ)と記述します。
結果、左辺と右辺の両方がfalse
となる定数apple
だけがfalse
を返しています。
2. 整数を表すInt型
2-1. Int型の宣言と型推論
次に整数を表すInt型(イント型)です。この型は厳密にいうと、
数値型の一つで、
後に説明するDobule型(ダブル型)と同族です。
Int型は整数ですので、1
や10
といった整数の値を表現します。
(注釈) 整数型にはInt8型、Int16型、Int32型、Int64型がありますが、今回は割愛します。
Int型の型宣言は 定数名(変数名) : Int = Int型の値と記述します。
var a: Int = 1
let b: Int = 10
また、型宣言を省略することもできます。省略した形は以下の記述です。
var a = 1
let b = 10
2-2. 計算を行う算術演算子
整数型の値を使って値を操作することができます。
まずは、計算を行うために使用する
算術演算子を見ていきましょう。
算術演算子とは皆さんもお馴染みの足し算や掛け算などの四則演算に使う記号と、
割り算をして出た結果の余りの数である剰余算に使う剰余演算に使う記号のことです。
例は以下の通りです。
// 加算(記号:プラス)
1 + 1 //結果は2
// 源算(記号:マイナス)
3 - 2 // 結果は1
// 乗算(記号:アスタリスク)
5 * 7 // 結果は35
// 徐算(記号:スラッシュ)
10 / 2 //結果は5
// 剰余(記号:パーセント)
7 % 2 // 結果は1
また、Int型の変数に対して上記の算術演算子と代入演算子イコール=
を組み合わせた
複合代入演算子というものがあります。例は以下のとおりです。
// 加算(記号:プラス)
var a = 1
a += 1 //結果は2
// 源算(記号:マイナス)
var b = 3
b -= 2 // 結果は-1
// 乗算(記号:アスタリスク)
var c = 5
c *= 7 // 結果は35
// 徐算(記号:スラッシュ)
var d = 10
d /= 2 //結果は5
// 剰余(記号:パーセント)
var e = 7
e %= 2 // 結果は1
2-3. 比較を行う比較演算子
数値どうしの大小関係を比較する比較演算子です。
比較演算子を挟んで左辺と上辺を比較して、
主に真理値で結果を表します。
比較演算子は以下の6つがあります。
==
右辺と左辺が一致する
!=
右辺と左辺が一致しない
var a = 100 == 100 //true
var b = 200 == 100 //false
var a = 100 != 100 //false
var b = 200 != 100 //true
>
左辺が右辺より大きい
>=
左辺が右辺以上
var a = 100 > 100 //fals
var b = 200 > 100 //true
var a = 100 >= 100 //true
var b = 200 >= 100 //true
<
右辺が左辺より大きい
<=
右辺が左辺以上
var a = 100 < 100 //false
var b = 200 < 100 //false
var a = 100 <= 100 //true
var b = 200 <= 100 //false
3 浮動小数点を表すDouble型
3-1. Double型の宣言と型推論
次に浮動小数点を表すDouble型(ダブル型)です。この型も数値型の一つで、
先に説明したInt型(Int型)と同じく数値を値として表す型です。
Double型は浮動小数点型ですので、0.1
や0.01
といった小数点のつく値を表現します。
(注釈) もう一つの浮動小数点型としてFloat型(フロート型)がありますが、
今回は説明を割愛します。
Int型の型宣言は 定数名(変数名) : Double = Daubile型の値と記述します。
var a: Double = 0.1
let b: Double = 0.01
また、型宣言を省略することもできます。省略した形は以下の記述です。
var a = 0.1
let b = 0.01
3-2. 算術演算、比較演算と注意点
Double型も数値型としてInt型で述べた算術演算(足し算や掛算)、比較演算(==や<=など)を
行うことができます。
var a = 0.1 + 0.2 // 結果は0.3
let b = 0.01 * 0.5 // 結果は0.005
var a = 0.1 == 0.1 // 結果はtrue
var b = 0.01 <= 0.05 // 結果はtrue
ここで一つ注意点があります。Swiftでは同じ数値型であっても
Int型とDouble型での演算処理ができない
ことになっています。
これを実行するとコンパイルヘラーの表示が出て、プログラムが実行でき
な仕様になっています。
var a = 1
var b = 0.1
var c = a + b //コンパイルエラー
a == b // コンパイルエラー
dauble型に合わせて宣言することで回避はできます。
var a = 1.0
var b = 0.1
var c = a + b // 結果は1.1
a == b // 結果はfals
4. 文字列を表すString型
4-1. String型の宣言と型推論
最後に文字列を表すString型(ストリング型)です。アルファベットや日本語を扱うことができます。
String型の型宣言は 定数名(変数名):String = “値”と記述します。
(“
ダブルクオートまたはダブルクォーテーション)
var a: String = "はるさんです。"
let b: String = "Harusan"
また、型宣言を省略することもできます。省略した形は以下の記述です。
var a = "はるさんです。"
let b = "Harusan"
4-2. String型の結合と値の挿入
String型には値同士を結合することもできます。
var a: String = "はるさんです。"
let b: String = "Harusan"
var c = a + b
print(c) //出力結果→ はるさんです。Harusan
また、\()
を用いて文字列の中に値を挿入することも可能です。
var a = "1月1日"
let b = "今日の日付は\(a)です。"
print(b) // 出力結果→ 今日の日付は1月1日です。
終わりに
今回は値を表現する基本的な型を4つ説明しました。
今回紹介した内容以外にも細かな使用がありますので気になるかたは調べてみてください。
自分もまだまだ勉強中なので、間違いがありましたらご指摘して頂けるとありがたいです。
この記事がプログラミング初学者の方にとってお役に立てれば幸いです。
参考著書
<増補改訂第3版> SWIFT実践入門