package main
import "fmt"
type Sales interface {
UpdateSales(count int)
GetSales() int
}
type Book struct {
id int
name string
sales int
}
func (bk *Book) UpdateSales(count int) {
bk.sales += count
}
func (bk *Book) GetSales() int {
return bk.sales
}
func (bk *Book) sell(count int) {
//销售
bk.UpdateSales(count)
}
func (bk *Book) refund(count int) {
//退货
if bk.GetSales() > 0 {
bk.UpdateSales(-count)
}
}
func main() {
myBook := &Book{1, "编译原理", 0}
fmt.Println(myBook.GetSales())
myBook.sell(1)
fmt.Println(myBook.GetSales())
myBook.sell(1)
fmt.Println(myBook.GetSales())
myBook.refund(1)
fmt.Println(myBook.GetSales())
}
0
1
2
1