Go函数语法解释

Go function syntax explanation

我正在读一本书。

一个功能出来了:

func (ip IP) DefaultMask() IPMask

此函数的源代码位于 net 包中:

func (ip IP) DefaultMask() IPMask {
    if ip = ip.To4(); ip == nil {
        return nil
    }
    switch true {
    case ip[0] < 0x80:
        return classAMask
    case ip[0] < 0xC0:
        return classBMask
    default:
        return classCMask
    }
}

问题是:什么是(ip IP)

此语法允许您从 IP 类型调用 DefaultMask(),类似于成员函数在其他语言中的工作方式:

ip.DefaultMask()

(ip IP) 基本上代表 "thiscall" 参数。

https://golang.org/ref/spec#Function_declarations

"Method declarations" - 为接收器基类型定义方法的方法。