【Swift】CustomStringConvertibleでデバッグ出力をカスタマイズ

この記事からわかること

  • SwiftCustomStringConvertible使い方
  • printデバッグエリア出力する際にカスタマイズする方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

環境

CustomStringConvertibleとは?

公式リファレンス:CustomStringConvertibleプロトコル

CustomStringConvertibleインスタンスを文字列に変換して出力する際の表現を定義するプロトロコルです。定義されているのはdescriptionプロパティのみでここに指定されている文字列がprintなどでデバッグエリアに出力した際の文字列となります。

var description: String

例えば以下のような構造体があった場合にprintしてみると以下のような形式になります。

struct Score {
    var high: Int
    var low: Int
    var average: Int
}

let score = Score(high: 100, low: 00, average: 50)
print(score) // Score(high: 100, low: 0, average: 50)

この出力文字列をカスタマイズしたい際にCustomStringConvertibleに準拠させdescription内に出力したい形式定義しておけばprintで出力する文字列が指定した形式に置き換えることができるようになります。

struct Score: CustomStringConvertible {
    var high: Int
    var low: Int
    var average: Int
    
    var description: String {
        "high:\(high) low:\(low) average:\(average)"
    }
}

let score = Score(high: 100, low: 00, average: 50)
print(score) // high:100 low:0 average:50

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index