Scala中如何在不同方法间访问方法参数变量?
解决方案
要实现clearPressed方法访问并清空addItemToStore的barcode参数,核心问题是方法的局部参数无法跨方法访问,你需要把barcode的状态保存为类的成员变量。具体步骤如下:
- 在
SelfCheckout类中添加一个可变成员变量,用于存储当前的barcode值(可替换现有clearBarcode变量,或命名更语义化的名称)
- 在
- 在
addItemToStore方法中,将传入的barcode参数赋值给这个类成员变量
- 在
- 在
clearPressed方法中,直接操作这个成员变量,将其置为空字符串
- 在
修改后的完整代码:
class SelfCheckout { var numList = List[String]() var numEnter: String = "" // 存储当前barcode的类成员变量 var currentBarcode: String = "" def addItemToStore(barcode: String, item: Item): Unit = { // 将传入的barcode保存到类成员变量 currentBarcode = barcode // 这里可保留你原本的业务逻辑,比如添加商品到库存等 } def numberPressed(number: Int): Unit = { numList = numList :+ number.toString } def clearPressed(): Unit = { numList = List() // 清空存储的barcode值 currentBarcode = "" } } // 假设Item类定义(若你的代码已有可忽略) class Item
关键点说明
- 方法参数(如
addItemToStore的barcode)是局部变量,作用域仅限方法内部,方法执行完毕后会被销毁,其他方法无法直接访问 - 类的成员变量(如
currentBarcode)属于整个实例对象,所有类方法都可访问和修改,适合存储需要跨方法共享的状态
内容的提问来源于stack exchange,提问作者siraat mustafa
相关产品推荐
相关产品推荐

