繁体   English   中英

为什么使用::运算符在Scala中创建列表时出现“不是成员”错误?

[英]Why does the `is not a member of` error come while creating a list in scala using the :: operator

我正在学习scala,我注意到以下代码行不起作用

     val worldFreq = ("India", 1) :: ("US", 2) :: ("Berlin", 10)

错误的结果: error: value :: is not a member of (String, Int) val worldFreq = ("India", 1) :: ("US", 2) :: ("Berlin", 10)

然而,这行代码完美地工作

val worldFreq = ("India", 1) :: ("US", 2) :: ("Berlin", 10) :: Nil
worldFreq: List[(String, Int)] = List((India,1), (US,2), (Berlin,10))

有人可以帮助我了解错误消息以及它与Nil一起使用的事实。

发生这种情况是因为::是右关联运算符。

因此,当您键入(1, 2) :: Nil它将转换为Nil.::((1,2)) 显然,元组上没有::方法,因此您不能编写(1, 2) :: (3, 4)

您可以在此处阅读更多信息: Scala的'::'运算符,它如何工作?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM