Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 尝试从列表中弹出元素时出现编译错误_List_Scala - Fatal编程技术网

List 尝试从列表中弹出元素时出现编译错误

List 尝试从列表中弹出元素时出现编译错误,list,scala,List,Scala,我有一些奇怪的编译器错误,我似乎无法理解。以下是相关代码: class A { var x = List[B]() def func = { val temp = x(0) x = x tail temp } } 我只想从列表中删除第一个元素并返回它。然而,我得到一个错误,说“类型不匹配:发现B:必需的Int”。我一辈子都搞不懂它为什么要整数 提前感谢您的帮助 什么类型的B?你是说Int 要获取第一个元素,可以使用head。要获取列表的其余部分,可以使

我有一些奇怪的编译器错误,我似乎无法理解。以下是相关代码:

class A {

  var x = List[B]()

  def func = {
    val temp = x(0)
    x = x tail
    temp
  }

}
我只想从列表中删除第一个元素并返回它。然而,我得到一个错误,说“类型不匹配:发现B:必需的Int”。我一辈子都搞不懂它为什么要整数


提前感谢您的帮助

什么类型的
B
?你是说
Int

要获取第一个元素,可以使用
head
。要获取列表的其余部分,可以使用
tail
。Scala中的点运算符是可选的

  def func = {  
    val temp = x.head
    x = x.tail
    temp
  }

是的,所以出于某种原因,当我做x头时,我得到“值更新不是B的成员”。不,我想返回类型B(一个定制的case类),但出于某种原因它需要一个Int。对于x.head。现在我在typechecker中遇到了相同的错误。
x.head
x head
,和
x(0)
都返回列表的第一个元素
x
x head
x.head
的语法糖。引入了不带点的语法来支持中缀应用程序,如
myList包含“foo”
,并且在这方面效果很好。如果有疑问,就写上点。不要使用后缀方法语法。编译器认为您的意思是
x=x tail temp
。尾部后面的分号也可以,但最好用点。