ブックマーク / qiita.com/tenntenn (2)

  • fmt.Formatterを実装して%vや%+vをカスタマイズしたり、%3🍺みたいな書式をつくってみよう #golang - Qiita

    fmt.Formatterを実装して%vや%+vをカスタマイズしたり、%3🍺みたいな書式をつくってみよう #golangGo fmtパッケージのインタフェース fmtパッケージにはいくつかインタフェースがあります。 例えば、ここではフォーマットに関わる以下の3つについて説明していきましょう。 Stringer GoStringer Formatter Stringerインタフェース fmt.Stringerインタフェースは有名でしょう。 定義は以下のようになっています。

    fmt.Formatterを実装して%vや%+vをカスタマイズしたり、%3🍺みたいな書式をつくってみよう #golang - Qiita
    hayajo_77
    hayajo_77 2021/05/24
  • インタフェースを埋込む #golang - Qiita

    当はGoGo日に書きたかったけど、ビール飲んで寝てしまったの今日(Go月6日)になりました。 Goのインタフェースは、明示的に実装する必要がなく、インタフェースが定義するメソッドリストをその型が持っていれば、そのインタフェースとして振る舞えます。 構造体に埋め込んだ型が持つメソッドについても、埋込み先の構造体のメソッドの一部としてみなすことができるため、インタフェースの実装の頭数に入れることができます。 インタフェースの実装と埋込みの関係についてはインタフェースの実装パターンという記事に詳しく書いているのでそちらを参考にしてください。 さて、埋込みによって構造体にインタフェース実装させるパターンは思ったよりも使えます。なぜなら、埋込みは単なる匿名フィールドに対して、インタフェースは実装を隠し、型を抽象化ができるからです。このパターンは、共通部分を抜き出して、それを複数の型で使う場合に非

    インタフェースを埋込む #golang - Qiita
    hayajo_77
    hayajo_77 2018/07/26
    “さて、埋込みによって構造体にインタフェース実装させるパターンは思ったよりも使えます。なぜなら、埋込みは単なる匿名フィールドに対して、インタフェースは実装を隠し、型を抽象化ができるからです。このパター
  • 1