我想regexp
从 Go 标准库扩展,以便能够定义我自己的方法。我使用以下结构:
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
为我的RichRegexp
,但它没有编译。返回包装基础类型的自定义类型的一般模式是什么?