SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

アップルの新プログラミング言語「Swift」を探検しよう

Swiftの「クラス」と「ストラクチャ」 その② ~ subscript、タイプキャスト、メモリ管理(およびクラス、ストラクチャ、列挙型のおさらい)

アップルの新プログラミング言語「Swift」を探検しよう 第5回

クラス、ストラクチャ、列挙型のおさらい

 本連載の最近3回分で、列挙型とクラスとストラクチャを扱ってきました。ここで各機能をおさらいしてみます。

 クラスとストラクチャには、宣言方法から、プロパティの付け方、初期化の仕方、インスタンスメソッドとタイプメソッドの呼び出しまで、共通する機能が多くあります。

  • 保持のためのプロパティ
  • 計算のためのプロパティ
  • 振る舞いを提供するためのメソッド
  • subscriptシンタックスで値にアクセスするための機能(次回解説します)
  • イニシャライザ(init
  • エクステンションを用いて機能を拡張可能(Objective-Cのカテゴリに類似)
  • プロトコル準拠

 列挙型には、値を保持するためのプロパティはありませんが、計算プロパティ、メソッド、subscriptはクラスやストラクチャと同様に使用できます。また、次の機能はクラスとストラクチャにはない、列挙型だけの機能です。

  • そのものを値として扱えるメンバーの機能
  • メンバーに付随した値の型を定義できる機能
  • 従来のNS_ENUMのような値の集合を表す機能

 最後に、クラス、ストラクチャ、列挙型の機能をまとめた比較表を次に示します。◯はクラス、ストラクチャ、列挙型においてその機能があること、☓は逆にないことを表しています。

クラス、ストラクチャ、列挙型の比較
  クラス       ストラクチャ    列挙型      
参照型 値型 値型
代入時 参照渡し コピー コピー
保持プロパティ
計算プロパティ
メソッド
メンバー
継承
イニシャライザ
デイニシャライザ   
subscript
ARC管理下
プロトコル
エクステンション

次回は

 今回はsubscript、アクセス修飾子、タイプキャスト、ARCにかかわる弱参照キーワードを解説しましたが、いかがでしたでしょうか。次回は、プロトコルとエクステンションを中心に解説します。お楽しみに。

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
アップルの新プログラミング言語「Swift」を探検しよう連載記事一覧

もっと読む

この記事の著者

yad(ヤド)

クラスメソッド株式会社のアプリケーションエンジニア。iPhoneアプリケーションの開発に2年以上従事している。開発に使用するObjective-Cのみならず、関数型言語Haskellや機械学習などにも関心がある。「Developers.IO」に寄稿した記事の一覧

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/8120 2014/09/29 14:00

イベント

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

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

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

メールバックナンバー