Go 声明接收方方法数组

Go 声明接收方方法数组,go,Go,下面是一个使用函数数组的小示例。我想将其转换为一组接收器方法。第11行数组的正确声明是什么 函数声明将从: func addToStock(s*Stock,add int) 致: func(s*Stock)addToStock(addint)您可以这样做: package main import ( "fmt" ) type Stock struct { qty int } var updaters = [2]func(*Stock, int){ func(s *S

下面是一个使用函数数组的小示例。我想将其转换为一组接收器方法。第11行数组的正确声明是什么

函数声明将从:
func addToStock(s*Stock,add int)

致:
func(s*Stock)addToStock(addint)

您可以这样做:

package main

import (
    "fmt"
)

type Stock struct {
    qty int
}

var updaters = [2]func(*Stock, int){
    func(s *Stock, i int){s.add(i)},
    func(s *Stock, i int){s.remove(i)},
}

func main() {
    s := Stock{10}

    fmt.Println("Stock count =", s.qty)

    updaters[0](&s, 2)

    fmt.Println("Stock count =", s.qty)

    updaters[1](&s, 5)

    fmt.Println("Stock count =", s.qty)
}

func (s *Stock)add(add int) {
    s.qty += add
}

func (s *Stock)remove(sub int) {
    s.qty -= sub
}

很好,谢谢!我的想法是错误的,试图像这样将接收器添加到数组声明中:var updaters=[2](*Stock)func(int){。。。