タグ

interfaceに関するoinumeのブックマーク (6)

  • TypeScript で type と interface どっち使うのか問題

    はじめに あくまで一個人の意見なので絶対的な解ではないというのと、どっちをデフォルトに選んでも普通にアプリケーション開発してて困ることはほぼほぼないと思うので、そこまで気を揉むことでもない、ということだけ最初に述べておいて意見をしたためます。 TL;DR アプリケーション開発では基的に type でおk Declaration merging したい時だけ interface ライブラリ開発のような使う側で拡張したい(Declaration merging したい)時は interface とりあえずチームでどっちをデフォルトにするかは統一しといた方が気持ちいい type と interface の違い 機能的にはそんなに大きな違いはなく、個人的に判断に関わるのは次の3つかなと思います。 interface では Declaration merging がされる。type ではされない

    TypeScript で type と interface どっち使うのか問題
  • nil は nil

    【2020-10-15 追記】 最近 Zenn で以下の記事を書いたので,こちらも併せてどうぞ。 nil == nil でないとき(または Go プログラマは息をするように依存を注入する) Interface 型の nil 値は「依存の注入(dependency injection)」と絡めて考えると分かりやすいかも知れない。 宣伝でした(笑) Qiita を覗いてたら Goのnilは(nil, nil)という(型, 値)ペアのインターフェースだと把握すれば混乱しない - Qiita という記事を見かけた。 おそらくは nil の理解のための方便として意図的に書かれているのだろう。 それはそれで悪くないのだが,微妙に危険な香りがするので私なりの解説を記しておく。

    nil は nil
  • GitHub - vburenin/ifacemaker: Generate interfaces from structure methods.

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    GitHub - vburenin/ifacemaker: Generate interfaces from structure methods.
    oinume
    oinume 2020/08/12
    struct -> interfaceを生成
  • Go言語における埋め込みによるインタフェースの部分実装パターン - Qiita

    構造体 Go言語には、クラスがない。そのため、代わりに構造体(struct)を使い、その型にメソッドを設けることで似たような振る舞いをさせる。 package main import "fmt" type Person struct { FirstName string LastName string } func (p *Person) Name() string { return p.FirstName + " " + p.LastName } func main() { person := &Person{"Taro", "Yamada"} fmt.Println(person.Name()) }

    Go言語における埋め込みによるインタフェースの部分実装パターン - Qiita
  • インタフェースの実装パターン #golang - Qiita

    はじめに この記事は,以下の過去にQiitaに投稿したインタフェースの実装パターンの記事に,typeやメソッド,インタフェースの基的な説明を追加してわかりやすくしたものです. Go言語における埋め込みによるインタフェースの部分実装パターン structにinterfaceを埋め込んで,動的に入れ替えるパターン まずtypeとメソッド,基的なインタフェースの実装方法についておさらいすることで,さまざまなインタフェースの実装パターンを扱う準備をしましょう. typeで型を宣言する まずはじめに,Go言語における型の宣言方法をおさらいします.Go言語をはじめたばかりの方の中に,typeの使い方を限定的にしか理解していない方をよく見かけます.ご存知のとおり,typeは型を宣言するために使うキーワードです.以下のように,構造体型やインタフェース型の宣言の際に,使用することが多いでしょう. //

    インタフェースの実装パターン #golang - Qiita
    oinume
    oinume 2014/09/17
    構造体にもfmt.Stringer埋め込めるんだ
  • Big Sky :: Golang のオフィシャルが提供するインタフェースまとめ

    golang が提供するインタフェースの中で代表的な物の使い方をまとめてみる。 io.Reader type Reader interface { Read(p []byte) (n int, err error) } ご存じ io.Reader。このシグネチャの Read を実装しておけば golang のありとあらゆる入力機能に対して自分のコードを提供する事が出来る。 例えば永遠に「おっぱい」と言い続ける Reader だと以下の様な実装になる。 package main import ( "io" "os" ) var text = []rune("おっぱい") type OppaiReader struct { n int } func (r *OppaiReader) Read(p []byte) (int, error) { in := len(p) nw := 0 for i

    Big Sky :: Golang のオフィシャルが提供するインタフェースまとめ
  • 1