Go 標準ライブラリからを拡張してregexp
、独自のメソッドを定義できるようにしたいと考えています。次の構造体を使用します。
type RichRegexp struct {
*regexp.Regexp
}
ご覧のとおり、この構造体にはラップされregexp.Regexp
た . したがって、これを次のような単純な型宣言に置き換えることができるかどうか疑問に思います。
type RichRegexp regexp.Regexp
しかし、次の関数はどのように記述すればよいでしょうか。
func Compile(expression string) (*RichRegexp, error) {
regex, err := regexp.Compile(expression)
if err != nil {
return nil, err
}
return &RichRegexp{regex}, nil // How to do this?
}
regexp.Regexp
myに変換しようとしましRichRegexp
たが、コンパイルできませんでした。基になる型をラップするカスタム型を返す一般的なパターンは何ですか?