CodeZine(コードジン)

特集ページ一覧

Swiftの追加された演算子と簡単になった文法

Objective-CユーザーのためのSwift入門 第2回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2014/12/11 14:00
目次

簡単になった文法

 SwiftでもObjective-Cと同様の文法でプログラムを記述できます。SwiftではObjective-Cよりも少し簡略化された構文を利用することができます。Swiftでよく利用される構文と追加された便利な機能を以下に示します。

定数の定義

 Swiftでは定数の定義も簡単になりました。連載第1回で説明した変数を定義する際に使う「var」を「let」にするだけで定数を定義できます。ソースコードを読む際には、letで定義されたものがあれば、その値はそれ以降変更されることがないと判断できます。

リスト4 定数の定義(ViewController.swift抜粋)
// 定数の定義
let lang:String = "Swift"

 定数を定義する際には、必ず値も必要です。変数と違って値をもたせずに定義だけにしておく、ということはできません。

日本語や絵文字での変数の定義

 世界で使用されている全ての文字を扱えるように設計された文字コードの規格にUnicodeがあります。Swiftで使われる文字は、このUnicodeに準拠するように設計されています。従って、日本語や中国語に代表されるマルチバイト文字を変数名にすることができ、プログラムの初学者にもわかりやすくコーディングを行うことができます。

リスト5 日本語での変数の定義(ViewController.swift抜粋)
var 都道府県:String = "東京都"
println(都道府県)
//  結果:「東京都」を出力

 絵文字を扱う場合には、Mac自体の入力機能を利用します。最初に「システム環境設定」―「キーボード」―「メニューバーにキーボードビューアと文字ビューアを表示」にチェックを入れます。

キーボードの設定
キーボードの設定

 チェックを入れた後に、メニューバーの入力メニュー内に「文字ビューアを表示」という項目が出現します。「文字ビューアを表示」を選択すると、次のように絵文字を選択できる入力パレットが表示されます。

絵文字入力パレット
絵文字入力パレット

 ここで入力したい絵文字を選択すると、Swiftのプログラム内に絵文字を入力できます。絵文字だけでなく、キリル文字やギリシャ文字等も同様に変数名として利用できます。ただし、プログラム内の変数に英数字以外を利用するのは非常に特殊ですので、アプリの管理者や他の開発者に影響が出ないように気をつけて下さい。

配列の扱い

 配列はArrayクラスで扱います。Objective-Cと違って、配列の宣言時に不変/可変の意識をする必要はありません。配列を宣言する際の書式は次のとおりです。

書式1 配列の宣言
var 配列名:Array<型> = Array<型>()
var 配列名:[型] = [型]()
var 配列名[:Array<型>] = 値

 型を指定してArrayクラスを初期化して配列を宣言します。「[]」を使って省略した形式で書くことも可能です。変数の宣言と同様に、値を指定して配列を宣言する際には、型を省略することもできます。具体的な利用例は次のとおりです。

リスト6 配列の利用例(ViewController.swift抜粋)
// 配列を宣言
var prefs:Array<String> = Array<String>()
// 値を追加
prefs.append("北海道")
prefs.append("東京都")
prefs.append("大阪府")
// 配列の要素数を取得
println(prefs.count)    //  結果:「東京都」を出力
println(prefs)              //  結果:[北海道, 東京都, 大阪府]」を出力

// 1番地に値を追加
prefs.insert("福岡県", atIndex: 1)
println(prefs)    //  結果:[北海道, 福岡県, 東京都, 大阪府]

// 範囲演算子を使って配列を宣言
var nums:[Int] = [Int](1...3)

/ 配列の宣言と値の代入を同時に行う
var countries:Array<String> = ["Japan", "USA", "China"]

 Arrayクラスの主なプロパティ/メソッドには次のものがあります。

Arrayクラスの主なプロパティ/メソッド
プロパティ/メソッド名 概要
count 配列の要素数を参照
isEmpty 配列の要素の有無をtrue/falseで返す
append(値) 配列の最後に値を追加
insert(値, atIndex:インデックス) 配列のインデックスに値を挿入
removeAtIndex(インデックス) 配列のインデックスの要素を削除
removeLast() 配列の最後の要素を削除
subscript(インデックス) 配列のインデックスの要素を削除

 Objective-Cに比べて非常に簡単になりましたが、String型の要素を格納する配列にはString型以外の値を追加できない、という制限があります。この点に気をつけてください。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Objective-CユーザーのためのSwift入門

著者プロフィール

  • WINGSプロジェクト 片渕 彼富(カタフチ カノトミ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XM...

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5