gpt4 book ai didi

scala - 不可变集合上的 += 运算符

转载 作者:行者123 更新时间:2023-12-04 16:32:18 25 4
gpt4 key购买 nike

当我做例如:

var airlines = Set("Qantas", "JetStar", "Air NZ")
airlines += "Virgin"

航空公司是一个不可变的集合。
+=未在不可变的 Set 特征上定义。
+=也是如此Scala 中的内置运算符?我的意思是 scala 怎么知道用新的 set("Qantas", "JetStar", "Air NZ", "Virgin") 重新分配航空公司?

最佳答案

如果以 = 结尾的运算符(例如 += )被使用但未在类上定义,Scala 编译器会将其脱糖为例如

airlines = airlines + "Virgin"

或者,对于 ++= ,我们会有
airlines ++= airlines

脱糖成
airlines = airlines ++ airlines

当然,如 dmeister notes ,这只会在新表达式有意义时编译。例如,如果我们处理 var s。

Scala Reference §6.12.4 Assignment Operators
( <=>=!= 被排除在特殊情况之外,模式也以 = 开头。)

关于scala - 不可变集合上的 += 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711481/

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