如何转换已在函数中定义的Scala值

ade*_*rsq 4 scala

如何在使用时转换值?例:

scala> def sum(x:Double, y:Int) {
     | x + y
     | }
sum: (x: Double,y: Int)Unit

scala> println(sum(2,3))
()
Run Code Online (Sandbox Code Playgroud)

如何用println修改行以打印正确的数字?

谢谢

Dan*_*ral 10

请注意sum返回Unit:

sum: (x: Double,y: Int)Unit
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为您错过了方法声明和正文之间的等号:

def sum(x:Double, y:Int) {
Run Code Online (Sandbox Code Playgroud)

你应该这样声明:

def sum(x:Double, y:Int) = {
Run Code Online (Sandbox Code Playgroud)

  • 值得一提的是`()`*是*`Unit` (5认同)

pr1*_*001 6

您的问题不是使用强制转换,而是使用函数定义.因为你=在函数参数和函数体之前省略了它,它返回Unit(即没有),因为REPL告诉你:sum: (x: Double,y: Int)单位.只需添加等于:

def sum(x: Double, y: Int) = {
  x + y
}
Run Code Online (Sandbox Code Playgroud)

现在你的sum方法将返回一个Double.