【Todo】【转载】Scala中Array, List, Tuple的区别
2016-12-01 16:32
537 查看
参考了这篇文章:
https://my.oschina.net/u/1034176/blog/512314
1. 在Scala 2.7中,Array、List都不能混合类型,只有Tuple可以;而在Scala以上版本中,3者的元素都可以混合不同的类型(转化为Any类型),只不过是当使用混合类型时,Array和List会将元素类型转化为Any类型,而Tuple则保留每一个元素的初始类型。
2. 可变性
3. 关于初始化
Array
List
Tuple
Todo:这个文章所在的博客可以看一下,还是有不少有意思的内容的:
https://my.oschina.net/u/1034176/blog
https://my.oschina.net/u/1034176/blog/512314
1. 在Scala 2.7中,Array、List都不能混合类型,只有Tuple可以;而在Scala以上版本中,3者的元素都可以混合不同的类型(转化为Any类型),只不过是当使用混合类型时,Array和List会将元素类型转化为Any类型,而Tuple则保留每一个元素的初始类型。
2. 可变性
3. 关于初始化
Array
1) val array= new Array[String](3) // Array(null, null, null)相当于声明了3个null值的空元素 val array= Array("a","b","c","d") // 相当于 Array.apply("a","b","c","d") 定义一个类型为Any的Array: val aa = Array[Any](1, 2) 或 val aa: Array[Any] = Array(1, 2) 或 val aa: Array[_] = Array(1, 2)
List
val list:List[Int] = List(1,3,4,5,6) // 或者 val list = List(1,3,4,5,6) (:::)实现叠加List,(::)cons:将新元素组合到列表的最前端。 元素合并使用::,集合合并使用:::,示例如下: 其中Nil代表空元素 val list2 = "a"::"b"::"c"::Nil // Nil是必须的 val list4 = list2:::list3
Tuple
元组也是不可变的,但是元组可以是不同类型的数据,实例化:var a = (,),可以通过点号,下划线,-N(N从1开始)的索引访问元素 var tuple = (200, "str", 3.14159) println(tuple._1) println(tuple._2) println(tuple._3)
Todo:这个文章所在的博客可以看一下,还是有不少有意思的内容的:
https://my.oschina.net/u/1034176/blog
相关文章推荐
- scala 关于Array,List,Tuple的区别
- scala 关于Array,List,Tuple的区别
- Scala深入浅出实战经典:27,Type、Array、List、Tuple模式匹配实战解析
- Scala学习笔记--Array和List和Tuple和Set和Map
- Scala 数组(Array),列表(List),元组(Tuple),集(Set),映射(Map),迭代器(Iterator)
- Scala 中Array,List,Tuple的区别
- scala 模式匹配之Type、Array、List和Tuple
- scala 模式匹配之Type、Array、List和Tuple
- 关于Array和List的区别(转载)
- Scala 中Array,List,Tuple的区别
- scala-27:Type、Array、List、Tuple模式匹配实战解析
- scala 模式匹配之Type、Array、List和Tuple
- scala中Array、List、Tuple异同
- Scala之Array,List,Tuple,Set,Map
- scala的array,list,tuple
- Scala中Array和List的区别
- Type、Array、List、Tuple模式匹配实战解析之Scala学习笔记-18
- 详谈Python中列表list,元祖tuple和numpy中的array区别
- Array and Linkedlist区别与操作的时间复杂度(转载)
- 快学scala之Array、List、tuple模式匹配