As an iOS Engineer

iOSエンジニアよるiOSのblog

Swift入門 (4) -変数の型-

型とは?

変数(以下、定数も含む)には型があります。型とは簡単にいえば変数の値の種類で文字列型や整数型などがあります。Swiftには複合型、列挙型、構造体など様々な型がありますが今回は文字列や数値などの基本的なデータ型について説明します。

基本データ型

数値型

Int型( 符号付き整数型)

符号とは+-記号を指していて、符号付き整数というのは負の値も表現できる整数という意味になります。

var hoge:Int = 100
var hoge2:Int = -100

値の型がはっきりしている時は型名の省略が可能なので以下のように宣言することもできます。

var hoge = 100
var hoge2 = -100

符号付き整数型には他にもInt8型、Int16型、Int32型、Int64型があります。

var hoge8:Int8 = 100
var hoge16:Int16 = 100
var hoge32:Int32 = 100
var hoge64:Int64 = 100

8,16といった数字は変数のbit数を表しており、bit数が大きいほど扱える数字の最大最小値の幅が大きくなります。 例えば、Int8型は-128〜127までの値しか表現できませんが、Int64型は-9,223,372,036,854,775,808〜9,223,372,036,854,775,807までを表現することができます。

なお、Int型のbit数は実行する端末の環境に依存しており、32bit環境ではInt32型と同等の値幅に、64bit環境ではInt64型の値幅になります。

普段整数を扱う時は難しく考えずにInt型を使うようにすれば問題ありません。


UInt型( 符号なし整数型)

符号なし整数とは負の値を扱わない整数型です。 UInt型、UInt8型、UInt16型、UInt32型、UInt64型があります。 負の値は扱えませんが、全bitを正の値の表現に使えるのでInt型の2倍の正の値を保持することができます。 例えばUInt8型の値の幅は0〜255になり、UInt64型では0〜18,446,744,073,709,551,615になります。

Swift型推論では整数はInt型として扱われるので、UInt型を使いたい時は型名を明記しましょう。

var hoge:UInt = 100


Double型、Float型( 浮動小数点型)

浮動小数点型は少数を扱うことができる型です。 Double型とFloat型の違いはbit数で、Double型は64bitでFloat型は32bitになっており、Double型の方が値幅が大きくなっています。 Swift型推論では少数をDouble型で扱うので型名を省略した場合はDouble型になります。

var hoge = 0.1 

上記はDouble型になります。

少数を扱いたい時は基本的にはDouble型を使えば問題ないと思います。

Bool型(真偽値型)

真偽値型は文字通り、真偽を表現する型で「true」と「false」の2値をとることができます。 条件分岐などで処理を分ける時などに使われます。

var hoge = true
var hoge2 = false


String型(文字列型)

文字列型は文字列を表現する方で、文字列は「"」(ダブルクォーテーション)で囲って宣言します。

var hoge = "文字列型です"

ダブルクォーテーション自体を文字列に含みたい時は「"」の前に「\」(バックスラッシュ)をつけます。

var hoge = "これが\"です"

この記述で、「これが"です」と出力されます。 "のように普通では扱えない文字をバックスラッシュなどをつけて扱えるようにすることをエスケープシーケンスといって、他にも\\(バックスラッシュ)、\t(タブ)、\'(シングルクォーテーション)など様々な文字があります。

Swiftには他にも文字を扱うCharater型やUnicodeScalar型などがありますが、文字列を扱う際はString型を使っていれば基本的には問題ありません。

今回はSwiftの変数で扱える型の中でも基本となる型について簡単に解説してみました。