Ale*_*eco 4 scala tuples set difference
两者都可以存储混合类型,但是Set似乎更强大,因为它具有union,intersection或diff等.
另一个重要的区别是元组不被视为集合.
我正在学习Scala,我想知道为什么我要使用元组而不是集合.
元组的主要优点是保持类型信息.对于像Scala这样的静态类型语言来说,这是一个大问题.
scala> (4.2,'c',true,"blah",7)
res2: (Double, Char, Boolean, String, Int) = (4.2,c,true,blah,7)
scala> Set(4.2,'c',true,"blah",7)
<console>:11: warning: a type was inferred to be `Any`; this may indicate a programming error.
Set(4.2,'c',true,"blah",7)
^
res3: scala.collection.immutable.Set[Any] = Set(true, blah, 7, c, 4.2)
Run Code Online (Sandbox Code Playgroud)
一旦我们的Set类型是,Set[Any]那么我们丢失了类型信息,这可能有助于避免问题(即错误).
此外,从a拉动元素Set[Any]可能是一种痛苦.从中提取的每个元素[例如mySet.head]可能必须在可以使用之前进行类型测试.从元组中获取单个元素也可能相当麻烦[ myTup._3]但编译器和代码的其余部分确切地知道它正在获得什么.
| 归档时间: |
|
| 查看次数: |
709 次 |
| 最近记录: |