がわおメモ

どこかの誰かのお役に立てれば。

Swift入門メモ -extension-

23 extensionで機能拡張

dotinstall.com

  • 既存のデータ型、クラス、構造体を拡張する
    • String,Intの基本データ型以外にもクラス・構造体・列挙型にも使える
  • 何らかの機能を追加したいときに使う
extension String {
    var size: Int {
        // 自身の文字数を返す
        return countElements(self)
    }
    func ebc() -> String {
        // 何が何でも"EBC!!!!"しか返さない
        return "EBC!!!!"
    }
}

var s: String = "hoge"
s.size // 4
s.ebc() //EBC!!!!

extension Int {
    func fjhss() -> Int {
        // 自身の数から12を引く(中学何年生?)
        return self - 12
    }
}

var age: Int = 12
age.fjhss() // 0
age = 33
age.fjhss() // 21