在 golang 中使用nil 的情况很多。例如:

func (u *URL) Parse(ref string) (*URL, error) {
    refurl, err := Parse(ref)
    if err != nil {
        return nil, err
    }
    return u.ResolveReference(refurl), nil
}

但我们不能这样使用它:

var str string //or var str int
str = nil
can't use nil as type string in assignment
nil