在Scala的REPL上做了一些例子.
我完全忘了Array在实例化一个Array对象时尝试输入(试图测试++运算符).
无论如何,现在我想知道这是什么数据类型?
val one = (1,2,3)
Run Code Online (Sandbox Code Playgroud)
或者上面的代码是什么数据结构或容器?这是什么电话?为什么有用?我不相信REPL提供了有关上述代码的有用信息.
感谢您的时间.
这是Tuple3的一个实例.元组可以被认为是固定大小的不可变数组,其中每个元素可能具有不同的静态编译时检查类型.
在您的示例中,这恰恰是:
Tuple3[Int, Int, Int]
Run Code Online (Sandbox Code Playgroud)
但是你也可以创建各种类型的元组:
val one = (1, false, "a")
Run Code Online (Sandbox Code Playgroud)
在这种情况下:
one._1 // 1, Int type
one._2 // false, Boolean
one._3 // "a", String
Run Code Online (Sandbox Code Playgroud)
元组有各种用例.它们主要用于从函数返回两个值(通常更少).您可以使用数组或列表,但是所有元素都需要具有相同的类型(Any在最坏的情况下),因此您可以放松静态类型检查.此外,不保证这样的序列的大小,而元组具有固定的大小,在编译时已知.
将元组视为轻量级临时对象,但不要滥用它们.例如,不要Tuple3用来表示日/月/年.
这是构造Tuple3对象的特殊语法.它相当于
val one = Tuple3[Int, Int, Int](1, 2, 3)
Run Code Online (Sandbox Code Playgroud)
元组定义为Tuple22.元组的一个重要用例是从函数返回多个值.元组也可以使用特殊语法解压缩:
scala> val (a, b, c) = one
a: Int = 1
b: Int = 2
c: Int = 3
Run Code Online (Sandbox Code Playgroud)