CodeZine(コードジン)

特集ページ一覧

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

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

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

辞書の扱い

 キーと値のペアのコレクションである辞書は、Dictionaryクラスで扱います。配列の際と同様に、不変/可変を意識せずに利用できます。辞書を宣言する際の書式は次のとおりです。

書式2 辞書の宣言
var 辞書名:Dictionary<型, 型> = Dictionary<型, 型>()
var 辞書名 = [型: 型]()
var 辞書名:[型: 型] = [key1: value1, key2: value2, ...]
var 辞書名[:Dictionary<型, 型>] = [key1: value1, key2: value2, ...]

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

リスト7 辞書の利用例(ViewController.swift抜粋)
// 辞書を宣言
var dict:Dictionary<String,String> = Dictionary<String,String>();
// キーと値をセット
dict["1"] = "Swift"
dict["2"] = "Objective-c"
println(dict)              //  結果:[2: Objective-c, 1: Swift]
println(dict.count)    //  結果:2

// 省略した形式で辞書を宣言
var dic1 = [String: String]()

// 型を指定して配列を宣言し、値を代入
var dic2:[String: String] = ["1":"Swift", "2":"Objective-C"]
var dic3:Dictionary<String, String> = ["1":"Swift", "2":"Objective-C"]

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

Dictionaryクラスの主なプロパティ/メソッド
プロパティ/メソッド名 概要
count 辞書のキーと値の数を参照
keys 辞書のキーだけを参照
values 辞書の値だけを参照
updateValue(値, forkey:キー) キーに対する値を更新
removeValueForKey(キー) キーと値を削除

 配列のときと同様に、最初に宣言した型以外のキー、値を追加することはできません。

丸括弧の省略

 if文/for文/while文等では、条件式につける丸括弧が省略可能になりました。

リスト8 if文の例(ViewController.swift抜粋)
var n = 10
if n > 5 {
    println("nは6以上です")
}
//  結果:「nは6以上です」を出力

条件分岐の拡張

 switch文では、条件の分岐に文字列型を利用できるようになりました。さらに丸括弧とbreakが不要となり、switch文自体も簡単に記述できるようになりました。

 ただし、breakが不要になった代わりに、defaultが必須になりました。defaultがないとエラーになってしまうので気をつけて下さい。

リスト9 switch文の例(ViewController.swift抜粋)
var animal:String = "cat"
switch animal{
    case "dog":
        println("犬です")
    case "cat":
        println("猫です")
    default:
       println("その他の動物です")
}
//  結果:「猫です」を出力

var score:Int = 60;
switch score{
    case 20...50:
        println("まだまでです")
    case 51...80:
        println("良いほうです")
    case 81...100:
        println("非常にいいです")
    default:
        println("がんばりましょう")
}
//  結果:「良いほうです」を出力

変数を埋め込む

 バックスラッシュと中括弧で変数名を囲む「 \(変数名) 」で文字列の中等に変数を埋め込んで値を表示できます。Swiftでは、文字列と数値をそのまま結合することはできません。そのような場合に、変数の埋め込みを利用すると、型変換等の処理を行わずに文字列と数値の結合ができます。

リスト10 変数の埋め込み(ViewController.swift抜粋)
var name:String = "Kenta"
var age:Int = 3
println( "My name is \(name), I'm \(age) years old." )

//  結果:「My name is Kenta, I'm 3 years old.」を出力

ループの際にインデックスも同時に取得する

 配列のループの際に値と同時にインデックスを取得するenumerate関数が追加されました。

リスト11 配列のインデックスと値を同時に取得(ViewController.swift抜粋)
var areaList : Array = ["関東","甲信越","北陸"]
for (index,area) in enumerate(areaList){
    println( String(index+1) + "番目 : " + area)
}
//  結果:「1番目 : 関東」、「2番目 : 甲信越」、「3番目 : 北陸」を出力

まとめ

 今回はSwiftの簡単になったプログラミング、追加された代表的な機能の確認まで行いました。次回では実際にSwiftでクラスやメソッドの作り方等について説明を行う予定です。

参考資料



  • 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