gpt4 book ai didi

Scala:将元素附加到列表

转载 作者:行者123 更新时间:2023-12-05 00:16:21 24 4
gpt4 key购买 nike

我有以下 2 个代码片段;第一个没有给我带来麻烦,但是对于第二个(附加到函数中的列表),我收到一条错误消息。这两个之间有什么区别,我该如何修复第二个?

这个工作正常:

object MyApp extends App
{
var myList = List.range (1, 6)
myList ::= 6
println(myList)
}

这不起作用:
def myFunc(list:List[Int]):Unit =
{
list ::= 10
}


error: value ::= is not a member of List[Int]
list ::= 10
^
one error found

最佳答案

var 标记的变量是可变的,因此可以重新分配。 a ::= b运算符只是 syntactic sugar由编译器提供 var变量 .它执行操作 a = b :: a .下面是一个例子:

scala> var l1 = List(1,2,3)
l1: List[Int] = List(1, 2, 3)

scala> l1 ::= 4

scala> l1
res1: List[Int] = List(4, 1, 2, 3)

scala> val l2 = List(1,2,3)
l2: List[Int] = List(1, 2, 3)

scala> l2 ::= 4
<console>:9: error: value ::= is not a member of List[Int]
l2 ::= 4
^
scala> val l3 = 4 :: l2
l3: List[Int] = List(4, 1, 2, 3)

传递的参数是不可变的,所以 ::=不能使用运算符。

关于Scala:将元素附加到列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42073292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com