如何创建一个Inventory类,它有2个方法(加和减),它们向Item类添加或减去一个金额,并返回一个新的Item,其计数调整正确?
语言:Scala
代码应该做什么:
val Shirts = Item("Hanes", 12)
val Inv = new Inventory
scala> Inv.subtract(5, Shirts)
output: Item(Hanes,7)
scala> Inv.add(5, Shirts)
output: Item(Hanes,17)
我的代码:
case class Item(val brand: String, val count: Int)
class Inventory {
def add(amount:Int):Int={
count+=amount
}
def subtract(amount:Int):Int={
count-= amount
}
}
注意:我无法弄清楚如何使用包含2个方法的Inventory类修改Item类。任何帮助表示赞赏。
答案 0 :(得分:2)
这应该做的工作:
class Inventory {
def add(amount:Int, item: Item): Item = {
item.copy(count = item.count+amount)
}
def subtract(amount:Int, item: Item): Item = {
item.copy(count = item.count-amount)
}
}
编辑:根据您的评论,添加支票金额&gt; 0(如果金额<= 0,我只是保持项目不变):
class Inventory {
def add(amount:Int, item: Item): Item = {
if (amount > 0) item.copy(count = item.count+amount) else item
}
def subtract(amount:Int, item: Item): Item = {
if (amount > 0) item.copy(count = item.count-amount) else item
}
}