1
我正在將一些java代碼翻譯爲scala,並且我無法從列表中使用刪除對象。我的代碼如下Scala從列表中刪除單個對象
def removeCar (usedCarList: List[UsedCars]):List[UsedCars] ={
//var vinNumber = "";
var car = new UsedCars();
println("Please enter the Vin Number");
var vinNumber = readLine();
var i = 0;
var found = false;
while (i < usedCarList.length){
car = usedCarList(i);
if (vinNumber == car.vinNumber) {
usedCarList.drop(i);
println("** Removed Car with Vin Number " + vinNumber + " **");
println(car.vinNumber);
found = true;
}
我知道滴是不是即時尋找到使用,但我無法弄清楚如何在給定的指數下降的元素。
你不能用不可變的List來做到這一點:你必須使用'scala.collection.mutable'包中的類。 – 2013-04-03 20:50:37
您可能錯誤地認爲scala「List」與java.util.List類似。不幸的是,它們是完全不同的東西。 – ghik 2013-04-03 21:02:56
每次你想破壞它時,你都可以自由創建一個新的不變列表。你可以用List.splitAt()在索引上做,然後去掉分割的頭部或尾部。我會嘗試List.dropWhile(),而不是你當前的循環。如果您需要從謂詞中打印副作用,則可以將其解除。 – n0741337 2013-04-03 21:34:14