В scala есть функция, используемая для удаления элементов из списка? - PullRequest
0 голосов
/ 01 ноября 2019

Я программирую список задач, в который я могу добавлять и удалять элементы. У меня возникают проблемы при попытке удалить элементы из моего изменяемого списка.

val list = MutableList[Any]()

def removeItem(){
     val input = scala.io.StdIn.readLine("\nEnter item to remove:\n").stripLineEnd

    for(i <- 0 to list.size){
        if (list[i] == input){
           list[i] = 0
           list -= input
        }
    }

}


def menu(option: Int): Boolean = {
  option match {
    case 1 =>
      addItem()
      true
    case 2 =>
      println("Enter item to remove")
      removeItem
      true
    case 3 =>
      println("\nHere is your todo list:")
      display()
      true
    case 4 =>
      println("selected quit")
      false
    case _ => // the else case
      println("Unrecognized command")
      true
  }
}

Когда я вызываю функцию из моего меню, чтобы удалить элемент, я ожидаю, что моя функция удаления элемента пройдет через мой изменяемый список и удалит в нем элемент, который = для ввода пользователя и позволяетмне делать это каждый раз, когда я вызываю функцию, но я получаю это, ошибка: ';'ожидается, но '=' найдено. список [я] = 0

1 Ответ

1 голос
/ 01 ноября 2019

Вы можете попробовать использовать scala.collection.mutable.ListBuffer. Примеры:

scala> import scala.collection.mutable.ListBuffer
import scala.collection.mutable.ListBuffer

scala> var mutableList = new ListBuffer[String]()
mutableList: scala.collection.mutable.ListBuffer[String] = ListBuffer()

scala> println(mutableList)// empty
ListBuffer()

scala> mutableList += "First element"
res1: scala.collection.mutable.ListBuffer[String] = ListBuffer(First element)

scala> println(mutableList)// 1 element
ListBuffer(First element)

scala> mutableList += "second element"
res3: scala.collection.mutable.ListBuffer[String] = ListBuffer(First element, second element)

scala> println(mutableList)// 2 elements
ListBuffer(First element, second element)

scala> // Deleting...

scala> mutableList -= "First element"
res5: scala.collection.mutable.ListBuffer[String] = ListBuffer(second element)
...