【发布时间】:2017-03-15 14:06:33
【问题描述】:
这是一个使用函数数组的小例子。我想将其转换为接收器方法的数组。第 11 行对数组的正确声明是什么? https://play.golang.org/p/G62Cxm-OG2
函数声明将从:
func addToStock(s *Stock, add int)
收件人:
func (s *Stock) addToStock(add int)
【问题讨论】:
标签: go
这是一个使用函数数组的小例子。我想将其转换为接收器方法的数组。第 11 行对数组的正确声明是什么? https://play.golang.org/p/G62Cxm-OG2
函数声明将从:
func addToStock(s *Stock, add int)
收件人:
func (s *Stock) addToStock(add int)
【问题讨论】:
标签: go
你可以这样做:
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
}
【讨论】: