router.Get("articles.update").URL("id", id)返回的不是指针吗?

updateURL, _ := router.Get(“articles.update”).URL(“id”, id)

返回的不是url.URL类型的指针吗?,为什么打印updateURL是个string呢

讨论数量: 2

前面定义的不就是 :

// ArticlesFormData 创建博文表单数据
type ArticlesFormData struct {
    Title, Body string
    URL         *url.URL
    Errors      map[string]string
}

然后方法 :

func (r *Route) URL(pairs ...string) (*url.URL, error) {
    if r.err != nil {
        return nil, r.err
    }
    values, err := r.prepareVars(pairs...)
    if err != nil {
        return nil, err
    }
    var scheme, host, path string
    queries := make([]string, 0, len(r.regexp.queries))
    if r.regexp.host != nil {
        if host, err = r.regexp.host.url(values); err != nil {
            return nil, err
        }
        scheme = "http"
        if r.buildScheme != "" {
            scheme = r.buildScheme
        }
    }
    if r.regexp.path != nil {
        if path, err = r.regexp.path.url(values); err != nil {
            return nil, err
        }
    }
    for _, q := range r.regexp.queries {
        var query string
        if query, err = q.url(values); err != nil {
            return nil, err
        }
        queries = append(queries, query)
    }
    return &url.URL{
        Scheme:   scheme,
        Host:     host,
        Path:     path,
        RawQuery: strings.Join(queries, "&"),
    }, nil
}

你说打印是 string 类型,上个打印结果看看

2年前 评论
爆炸青山绿水 (楼主) 2年前

file 因为是php转过来的,有些知识点还是不全,有时候看代码返回有点懵,严格来说也不是返回string,只是打印出来的不是个指针类型,而是个图中的这个,有点奇怪,不知道是哪个知识点没覆盖到

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!