Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

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

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

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

 本連載では、Objective-Cの基本的なプログラムが出来る読者を対象に、Swiftを使ってアプリを開発する際の基本的な事柄を解説します。Objective-CもSwiftもC言語を母体としたプログラム言語なので両者に共通する概念は非常に多いです。Objective-CとSwiftとの最低限度の違いを踏まえつつ、Swiftでのアプリ開発にシフトして行けるような内容をサンプルを交えながら解説します。今回は、Swiftでの演算子の使い方と文法について説明します。

目次

はじめに

 前回までは、Swiftを使ってプログラムを試すための準備について説明しました。連載第2回は、Swiftでの演算子の使い方と簡単になった文法について説明します。

 対象読者をObjective-Cが分かる方としている関係上、Objective-C自体の言語仕様やXcodeの使い方については解説を割愛する場合があることをご了承ください。同様にSwift自体の説明も必ずしも十分でない場合があります。そのような場合は末尾の参考文献等を参照してください。

対象読者

 本記事は、次の方を対象にしています。

  • Objective-Cの基本的なプログラムが出来る方
  • Xcodeを使える方

演算子

 演算子についてはC言語の仕様通りにObjective-Cと同じ演算子が利用できます。Swiftでは範囲を扱う演算子、文字列を扱う演算子が追加されました。

基本的な演算子

 よく利用される基本的な演算子を以下に示します。

算術演算子
演算子 利用例 概要
+ a+b aにbを足す
- a-b aからbを引く
* a*b aにbをかける
/ a/b aをbで割る
% a%b aをbで割った余り
比較演算子
演算子 利用例 概要
== a==b aとbが等しければ真
!= a!=b aとbが等しくなければ真
<> a<>b aとbが等しくなければ真
> a>b aがbより大きければ真
< a<b aがbより小さければ真
>= a>=b aがb以上であれば真
<= a<=b aがb以下であれば真
論理演算子
演算子 利用例 概要
! !a aが真であれば偽、aが偽であれば真
&& a && b aが真、かつbが真の場合に真
|| a || b aが真、またはbが真の場合に真
範囲演算子
演算子 利用例 概要
... a...b aからbまで bを含む
..< a..<b aからbまで bを含まない

 範囲演算子の利用は次の通りです。「..<」演算子は、最後の数を含めないため、配列のループカウントに利用すると便利です。

リスト1 範囲演算子の利用例(ViewController.swift抜粋)
var i:Int=0
// ...最後の数字まで処理を行う
for i in 0...3 {
    println(i)
}
//  結果:「0」「1」「2」「3」を出力

var langs:Array<String> = ["Java", "PHP", "Perl", "Ruby"]
// 最後の数字は含めずに処理を行う
for i in 0..<langs.count {
    println(langs[i])
}
//  結果:「Java」「PHP」「Perl」「Ruby」を出力

Swiftで追加された演算子の利用例

 Swiftでは、以下のような演算子も追加されました。

(1)文字列の結合

 Swiftでは文字列の結合に演算子を利用できます。Objective-Cと違って、Stringクラスの文字列結合メソッドを呼び出す等の処理は必要ありません。

リスト2 文字列の結合(ViewController.swift抜粋)
// 文字列の結合
var str = "iPhone" + "6"
println(str)
//  結果:「iPhone6」を出力

(2)文字列の比較

 文字列の比較に「==」を利用できるようになりました。比較する対象は文字列同士で、文字列と数値等の型が違う変数は比較できませんので注意してください。

リスト3 文字列の比較(ViewController.swift抜粋)
var a:String = "東京"
var b:String = "大阪"
// 文字列を比較
if a==b {
  println("aとbは同じです")
}else{
  println("aとbは違います")
}
//  結果:「aとbは違います」を出力

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

著者プロフィール

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

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

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

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

バックナンバー

連載:Objective-CユーザーのためのSwift入門
All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5