• golang 函数名之前括号里的内容


    
    
    func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
        ...
    }

    这意味着ServeHTTP不是一个独立的功能。函数名称前面的括号是Go定义这些函数将在其上运行的对象的方式。所以,本质上ServeHTTP是一个类型处理程序的方法,可以使用类型处理程序的任何对象来调用,比如h。

    他们也被称为接收者。这里是定义他们的方法有两种。如果你想修改接收器,使用如下的指针:

    func (s *MyStruct) pointerMethod() { } // method on pointer

    如果你不需要修改接收器,则可以将接收器定义为如下值:

    func (s MyStruct)  valueMethod()   { } // method on value
    package main
    
    import "fmt"
    
    type Mutatable struct {
        a int
        b int
    }
    
    func (m Mutatable) StayTheSame() {
        m.a = 5
        m.b = 7
    }
    
    func (m *Mutatable) Mutate() {
        m.a = 5
        m.b = 7
    }
    
    func main() {
        m := &Mutatable{0, 0}
        fmt.Println(m)
        m.StayTheSame()
        fmt.Println(m)
        m.Mutate()
        fmt.Println(m)

    上述程序的输出是:

    &{0 0}
    &{0 0}
    &{5 7}
  • 相关阅读:
    golang-uuid
    golang-random随机数
    git status检测不到文件变化
    vimium
    go1.11新特性,mark一下
    HTML网页滚动加载--mark一下
    docker-清理none镜像等操作
    golang websocket
    postman 快捷方式--启动图标
    tmux基本操作
  • 原文地址:https://www.cnblogs.com/peteremperor/p/16258949.html
Copyright © 2020-2023  润新知