答えて
私は最良の答えが一例だと思います。
Client.CheckRedirect
を参照してください。
type Client struct {
// (...)
CheckRedirect func(req *Request, via []*Request) error
}
これはhttp.Client
は、リダイレクト応答を有するたびに呼び出される関数です。実際、この関数はパブリックプロパティであるため、Client
オブジェクトを作成するときにこれを設定することができます。したがって、このような場合にカスタムビヘイビアを定義することができます。
client := &http.Client{
CheckRedirect: func(req *http.Request, via []*http.Request) error {
return http.ErrUseLastResponse
}
}
機能のプロパティは、カスタムビヘイビアの代理人です(だけでなく、!)。
もう1つの例は、イベントを持つオブジェクトを作成することです。
type Example struct {
EventHandler func(params []interface{})
}
あなたはExample.EventHandler
プロパティを設定することによって、そのイベントの動作を指定することができます。
**「機能プロパティはカスタム動作の代理人です」** **あなたはそこに釘付け!私は[client.go](https://github.com/golang/go/blob/master/src/net/http/client.go)の** checkRedirect **の実装について深く掘り下げています。構造体を持つ関数を宣言するとき、私たちは2つのことを行います。まず、宣言された関数のデフォルト動作を実装します。次に、宣言された関数の動作を変更する自由をユーザに与えます。ありがとう! –
私は助けてくれると嬉しいです:) – Albert221
このタイプから機能をカスタマイズして、そのタイプから機能をカスタマイズすることができます。
- 1. 構造内の関数
- 2. C:関数内の構造体の内部構造体の配列へのポインタ
- 3. 構造体を関数に渡し、関数内にその構造体のインスタンスを作成します。
- 4. 構造体を関数型として
- 5. 構造体+削除された関数エラー内のC++構造体
- 6. 構造内のシャッフリング構造
- 7. JNA構造内の構造
- 8. 構造体のinit関数
- 9. 木構造の関数Mysql
- 10. C構造体内の構造体内部の構造体
- 11. C - structポインタを引数として使用して関数内に構造体を割り当てよう
- 12. 関数内でserde_jsonで作成した構造体を返す
- 13. 関数ポインタと構造体
- 14. malloc関数、構造体
- 15. Cの関数のtypedef構造体と構造体の相違
- 16. C++:関数の引数として構造体の配列
- 17. C Prog .:関数の引数としての構造ですか?
- 18. LLVMとC関数の構造体を引数として
- 19. 関数内のポインタとして構造体メンバを渡す方法
- 20. 関数内の構造体のポインタ値へのアクセス
- 21. C++の構造体内の構造体
- 22. 関数構造内のプロトタイプ - Intellisenseが見つかりません
- 23. structパラメーターを構造体内の関数に渡す
- 24. mexFunctions:構造体内の構造
- 25. 構造体内の構造体
- 26. 構造体への引数としての構造体
- 27. 関数内で構造体フィールドを記述してください。
- 28. 構造体が変数として配列内に変数
- 29. インライン関数はどのように内部データ構造を公開しますか?
- 30. 関数の引数(マクロ)で `do`構造体を使う
@TehSphinXあなたの前提に基づいて投票していただきありがとうございます。可能です。https://play.golang.org/p/AjFvfGDjRI –