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の変数で扱える型の中でも基本となる型について簡単に解説してみました。

Swift入門 (3) -変数と定数-

変数定義

今回はSwiftの変数についてです。変数とは値を入れておくことができる入れ物のようなものです。
Swiftの変数には一度代入した値を後から変更できる普通の変数と、一度代入した値を変更できない定数の2種類があります。
後から値が変更できる普通の変数は以下のように宣言します。

var 変数名:型名

型については次回改めて解説しますが、文字列を表すString型や整数を表すInt型などがあります。 それぞれ、以下のように宣言できます。

var hoge:String
var foo:Int

変数の初期化

変数を宣言しただけでは入れ物の中身が空なので使うことができません。
空の変数に値を入れてプログラムで使えるようにすることを初期化といいます。変数の初期化は「=」を使って行います。

f:id:yopipi:20150215211243p:plain

文字列型であるString型の変数は文字列を代入して初期化します。整数型であるInt型の変数は整数値を代入して初期化します。
varで宣言した変数は値を後から変更できますので、一度代入した値を「hoge="def"」のように何度でも上書きすることができます。

また、変数の宣言と初期化は同時に行うことができるので、以下のようにも記述できます。

var hoge:String = "abc"


Swiftには型推論という仕組みが備わっており、代入する値の型が明確な場合は型名の宣言を省略して以下のように記述することもできます。

var hoge = "abc"


つまり、

var hoge:String
hoge = "abc"
var hoge:String = "abc"
var hoge = "abc"

はそれぞれ同じ内容になります。 ただ、無駄な記述を避けるため特に理由がなければ型推論を使った、

var hoge = "abc"

の記述が好ましいでしょう。

値を宣言する際に文字列は「"」で囲って記述しますが、整数はそのまま値を記述します。
そのため、
"1"
は整数の「1」ではなくて文字列の「1」として扱われます。

型に不適切な値を代入しようとするとエラーになります。例えば以下はそれぞれエラーになります。

hoge = 1
foo = "abc"
foo = "1"

また、Swiftでは「1」は整数ですが「1.0」は実数型(FloatまたはDouble)として扱われるので、

foo=1.0


もエラーとして扱われます。 Playgroundに入力してみるとこのような画面になると思います。左端の赤丸の中に「!」マークが表示されていますね。これがエラーの印です。

f:id:yopipi:20150215210705p:plain

「!」マークをクリックすると具体的なエラーの内容が表示されます。

f:id:yopipi:20150215211017p:plain

定数宣言

定数は「var」の代わりに「let」を使って宣言します。

let 変数名:型名 = 値

具体的には、

let foo2:Int = 1

のように記述します。

定数も型推論が有効なため、こちらの記述も有効です。

let foo2 = 1

定数は初期化しないで宣言しようとするとエラーになります。また、定数は後から値を変更することができないため、後から別の値を代入しようとするとエラーになります。

それぞれPlaygroundで試してみるとこのようになります。

f:id:yopipi:20150215213855p:plain

f:id:yopipi:20150215213905p:plain

それでは次回はSwiftの様々な型をご説明します。

Swift入門 (2)PlaygroundでHello World!

 第2回ではXcode上のplaygroudという仕組みを使って実行する方法を解説します。

 

playgroundはSwiftの文法をいろいろ試して実行したりできる仕組みで、入力したSwiftのコードがリアルタイムに実行されて画面に反映されます。

通常、iPhoneアプリを作成するためにはコンパイルをする必要がありますので、Swiftの実行結果を確認するためにはコンパイルが完了するのを待つ必要がありますplaygorundではコンパイル無しでSwiftのコードが実行できるため、色々と試行錯誤しながらコードを書いてみたい時などに大変便利です。

 

早速、前回インストールしたXcodeを起動してみましょう。

f:id:yopipi:20150211232919p:plain

Xcodeを起動するとこちらの画面が表示されると思います。

iPhoneアプリを作る場合は「Create a new Xcode project」を選択しますが、今回はplaygroundを使いますので「Get start with a playground」を選択しましょう。

 

f:id:yopipi:20150211232914p:plain

そうするとこちらの画面が表示されます。

「Name」欄はplaygroundファイルのファイル名になります。ご自分の好きな名前を入力してください。

platformは「OS X」と「iOS」が選択できますが、「iOS」を選択しましょう。

 

 

f:id:yopipi:20150211233245p:plain

 playgorundは2列に分かれており、左側の欄にSwiftのコードを記述すると、そのコードの出力結果が右側の欄に表示されます。

上記のコードではstrという変数に代入された「Hello, playground」という文字列が出力されています。

 

この文字列を「Hello World!」に書き換えてみましょう。リアルタイムに反映されます。

f:id:yopipi:20150212000316p:plain

 

次回はSwiftの変数と定数について解説します。

 

 

 

Swift入門 (1)はじめに

はじめまして、こんにちは。

Swift入門」カテゴリーではAppleが開発した新しい言語であるSwiftの文法について紹介していきます。僕自身、Swfitの勉強は始めたばかりで偉そうなことは書けませんが自分の勉強も兼ねて、Swift入門を書いていきたいと思いますので、よろしくお願いします。

 

Swiftとは

 SwiftとはAppleが2014年6月に発表した新しいプログラミング言語で、iPhoneアプリの開発に使うことができます。Swiftが登場するまでiPhoneアプリは「Objective-C」という言語で開発されてきました。SwiftObjective-Cと比べてモダン・安全・インタラクティブ性で優れているといわれ、現在大きな注目を浴びている言語です。

Objective-CSwift登場後も引き続きiPhoneアプリ開発に使うことはできますが、これから初めてiPhoneアプリの開発に挑戦するのであれば、今後主流になっていくと思われるSwiftの勉強から初めるのも正しいのではないかと思います。

 

Xcode

Swiftを書いたり実行するためにはXcodeというアプリケーションを使います。XcodeIDE(統合開発環境)と呼ばれるプログラミング用のエディタで、Appleから無料で提供されています。

 

なお、iPhoneアプリを開発するためにはXcodeが必須になりますが、XcodeMac上でしか動作しないため、iPhoneアプリの開発にはMacが必須ということになります。

また、Xcode自体は無料ですが、開発したiPhoneアプリを実機にインストールして動かしたり、実際にAppStoreで一般に公開するためには有料のiOS Developer Programに登録する必要があります。料金は2015年2月現在だと年間11,800円になります。本格的にiPhoneアプリを開発する際はiOS Developer Programに登録する必要がありますが、とりあえずSwiftを試してみたい、勉強してみたい、という段階であれば登録しなくても問題ありません。

 

XcodeのダウンロードはMac App Storeから行えますので、インストールしてみましょう。

Xcode

Xcode

 現在のバージョンは6.1.1です。

 

次回の記事では実際にXcodeでSwfitを書いてみます。