1
Help us understand the problem. What are the problem?

posted at

updated at

【iOS】extensionってなに?

はじめに

先日、extensionについて調べてまとめる機会があったので、簡単にまとめてみました。

extensionとは何か

Swiftでは既に存在している型に、プロパティやメソッドやイニシャライザなどの方を構成する要素を追加することができます。この型の拡張をextensionと呼びます。

主に

  • クラス
  • 構造体
  • 列挙型

などに対して機能を拡張します。他にもIntやStringなどの型でも拡張することができます。

定義方法

extensionの定義方法は以下のように宣言できます。


extension エクステンションを定義する対象の型 {
    対象の方に追加したい要素
}

継承との違い

クラスを拡張するという意味では、継承とextensionはとても似ています。
しかし、継承の場合は、あるクラスの機能を拡張するため、別のクラスが必要になります。
それに対してextensionは既にあるクラスを動的に拡張することができ、継承の際に発生するオーバーライドがありません。

つまり、継承はクラスを引き継いで新たなクラスを別名で作るのに対し、extensionはそのままの名前でメソッドやプロパティを追加することができます。

メソッドの追加例

String型を拡張してprintHello()というメソッドを追加していきます。

extension String {
    func printHello(){
        print("Hello, \(self)")
    }
}

let string = "World!"
string.printHello()

これを実行すると実行結果は、Hello, World!になると思います。

参考文献

  • Swift実践入門

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
1
Help us understand the problem. What are the problem?