gpt4 book ai didi

scala - 为 Scala map 增加值(value)

转载 作者:行者123 更新时间:2023-12-01 19:07:46 25 4
gpt4 key购买 nike

为什么这样做:

val x = Map[Int,Int]()
val y = (1, 0)
x + y

但不是这个?
val x = Map[Int,Int]()
x + (1, 0)

产生的错误是:
<console>:11: error: type mismatch;
found : Int(1)
required: (Int, ?)
x + (1,0)
^

如果我输入 (1,0)进入 REPL,它正确地将其键入为 (Int,Int) .

我应该补充一点,这很好用:
x + (1 -> 0)

最佳答案

这是由元组符号和参数列表符号之间的相似性引起的歧义:
x + (1,0)x.+(1,0) 的符号但遗憾的是在 x 上没有方法需要两个 Int参数。您要的是x.+((1,0)) ,即 x + ((1,0)) .

Scala 中有一种叫做自动元组的东西,见 this question and answers ,例如重写 println (1,2)println((1,2)) .除非这在这里不起作用,因为 +方法采用可变数量的参数,而不是像 println 这样的单个参数.

您会收到那条奇怪的错误消息,因为它期望参数列表中的每个值 (1,0)是一个元组,如 myMap + ((1,2), (1,3), (3,4)) .它找到了一个 Int而不是 (Int, Int) ,因此错误。

关于scala - 为 Scala map 增加值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17761624/

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