Go 声明接收方方法数组
下面是一个使用函数数组的小示例。我想将其转换为一组接收器方法。第11行数组的正确声明是什么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
函数声明将从:
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){。。。