def check(a: Int, b: Int): (Int, Int) = { (3, 4) } 返回类型为(Int, Int)。这怎么可能? Scala 实-6ren">
gpt4 book ai didi

scala - Scala 中的 "(x, y)"是什么?实际返回的是什么?

转载 作者:行者123 更新时间:2023-12-02 14:11:08 25 4
gpt4 key购买 nike

scala> def check(a: Int, b: Int): (Int, Int) = {
(3, 4)
}

返回类型为(Int, Int)。这怎么可能? Scala 实际上返回了什么?一个元组?数组?到底这个类型是什么?

我知道我可以像这样调用这个函数:

scala> val (a, b) = check(1,2)
a: Int = 3
b: Int = 4

或者这个:

scala> val x = check(1,2)
x: (Int, Int) = (3,4)

我还在学习 Scala,但我不记得以前是否见过这个,也不记得这个语法的名称。它是什么?

我给出的第一个例子相当简单,返回(3, 4)。有没有更现实的方法来返回此 (Int, Int) 类型?我是否必须始终像这样 (x, y) 那样输入最终结果(假设 x 和 y 值包含这两个输入的最终输出)或返回 (x, y)?

最佳答案

正如 @dhg 提到的,(Int, Int) 等于 Tuple2[Int, Int]

在第二个示例中,您在变量定义中使用模式匹配。您可以将它与元组、案例类以及具有提取器的所有内容一起使用。事实上,一切都是通过提取器进行的。

scala> val p = Point(1, 2)
p: Point = Point(1,2)

scala> val Point(x, y) = p
x: Int = 1
y: Int = 2

scala> val Property = "(.+)=(.+)".r
Property: scala.util.matching.Regex = (.+)=(.+)

scala> val Property(name, value) = "name1=value1"
name: String = name1
value: String = value1

关于scala - Scala 中的 "(x, y)"是什么?实际返回的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21059048/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com