scala中是否存在用于从列表中删除项目的功能?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scala中是否存在用于从列表中删除项目的功能?相关的知识,希望对你有一定的参考价值。

我正在编写待办事项列表,我可以在其中添加元素并删除它们。我在尝试从可变列表中删除项目时遇到问题。

val list = MutableList[Any]()

def removeItem(){
     val input = scala.io.StdIn.readLine("
Enter item to remove:
").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("
Here is your todo list:")
      display()
      true
    case 4 =>
      println("selected quit")
      false
    case _ => // the else case
      println("Unrecognized command")
      true
  }
}

[当我从菜单中调用该功能以删除项目时,我希望我的删除项目功能能够遍历可变列表并删除其中=用户输入的项目,并允许我每次执行此操作调用函数,但是我得到了这个错误:';'预期,但找到了'='。list [i] = 0

答案

您可以尝试使用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)

以上是关于scala中是否存在用于从列表中删除项目的功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何从离子列表中删除离子项目?

InstallShield 2011 未从服务列表中删除服务

使用 For Each 循环遍历列表时删除列表中的项目

用于从 Appfabric 缓存中删除项目的 Powershell 命令

如何从 SCALA 中的表中提取与列表中存在的索引相对应的行。?

Dart // Flutter:如何根据条目的内容从列表中删除项目