如何声明由返回的功能列表初始化的列表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的一个元素[任何],只是任何?
答案 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)