从Scala中的函数返回初始化列表

时间:2017-07-25 23:22:24

标签: scala list

如何声明由返回的功能列表初始化的列表var?

我想要List[Any],我们称之为newList,将其分配给某个函数返回的值,比如说makeList(),返回List[Any]

像:

var newList = makeList(arg1, arg2)

出现错误:“Any类型的表达式不符合预期类型List [Any]”

我希望然后索引到newList的第一个元素,如:newList(0)

我试过val newList : List[Any] = makeList(arg1, arg2) 但我仍然在newList(0)

收到错误消息

我已确认makeList会返回一个列表[任意]。

最后一个错误来自于newList(0)作为函数的最后一行,因此,最后一个问题是:函数的返回类型需要返回List的一个元素[任何],只是任何?

1 个答案:

答案 0 :(得分:1)

您指定的方式是正确的。

例如,

scala> def makeList = List("scala", "clj", 1, 100.5)
makeList: List[Any]

scala> val newList = makeList
newList: List[Any] = List(scala, clj, 1, 100.5)

scala> newList = List("I want to change the reference of list")
<console>:12: error: reassignment to val
       newList = List("I want to change the reference of list")
               ^

在上面的例子中,newList是val,这意味着你以后不能改变它。

使用var,您可以更改参考

scala> def makeList() : List[Any] = List("scala", "clj", 1, 100.5)
makeList: ()List[Any]

scala> var newList = makeList
newList: List[Any] = List(scala, clj, 1, 100.5)

scala> newList = List("I changed the reference of list")
newList: List[Any] = List(I changed the reference of list)