【Todo】【转载】Scala中Array, List, Tuple的区别

参考了这篇文章:

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

 

posted @   blcblc  阅读(1176)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示