gpt4 book ai didi

scala - 在 Scala 中交换不同类型的元组

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

我正在尝试编写一个简单的函数来交换 Scala 中的 (Int, String) 元组。我尝试了很多方法,但不断收到编译器错误,例如:

def swap (p:(Int,String)) : (String,Int) = {
var s = p._1
var t = p._2
var u = (p._2, p.1)
}

[error] found : Unit
[error] required: (String, Int)
[error] }
[error] ^
[error] one error found

为什么它一直说找到“Unit”类型?我尝试过不同的变体,甚至使用 Scala 中内置的“交换”函数,但我不断收到此类错误,指出我的返回类型不是 (String, Int)。任何建议表示赞赏。谢谢!

最佳答案

方法的返回值(或者更一般地说,任何 block 的值)是 block 内最后一个表达式的值。 block 中的最后一个表达式是

var u = (p._2, p.1)

赋值的值是 () (这是 Unit 类型的单例值):赋值是一个副作用,它不会< em>有一个值,()是值(Unit是类型),表示没有值(想想“void ”如果您熟悉 C、C++、D、Objective-C、Objective-C++、Java 或 C♯);因此,您的方法返回 (),其类型为 Unit

下面是一种更类似于 Scala 的方法来编写方法:

def swap[A, B](p: (A, B)) = (p._2, p._1)

关于scala - 在 Scala 中交换不同类型的元组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43297916/

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