这是一个使用函数数组的小例子。我想将其转换为接收器方法的数组。第11行阵列的正确声明是什么? https://play.golang.org/p/G62Cxm-OG2
函数声明将改为:
func addToStock(s * Stock,add int)
要:
func(s * Stock)addToStock(add int)
答案 0 :(得分:0)
你可以这样做:
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
}