SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

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

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

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

辞書の扱い

 キーと値のペアのコレクションである辞書は、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でクラスやメソッドの作り方等について説明を行う予定です。

参考資料

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Objective-CユーザーのためのSwift入門連載記事一覧

もっと読む

この記事の著者

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

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるReact実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

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

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

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/8288 2014/12/19 18:53

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング