Scala中如何正确打印两数之和?代码输出异常求助
问题解决:Scala两数相加输出异常
你的代码问题出在curr方法的返回值上:
- Scala是表达式语言,方法的返回值默认是方法体最后一个表达式的结果
- 原代码中
var result= value +9是赋值语句,赋值语句的结果是Unit(即()),所以curr()返回的是Unit,最终输出Sum is ()
修复方案(两种任选其一)
方案1:直接返回计算表达式
object test1 { def main(args: Array[String]):Unit={ val obj= new A(); println("Sum is " + obj.curr()) } } class A{ private var value=6 def curr()={ value + 9 // 最后一行表达式作为返回值 } }
方案2:保留变量,将变量作为最后一行
object test1 { def main(args: Array[String]):Unit={ val obj= new A(); println("Sum is " + obj.curr()) } } class A{ private var value=6 def curr()={ var result= value +9 result // 将变量作为最后一行,作为返回值 } }
运行修复后的代码,就能得到期望的Sum is 15输出。
内容的提问来源于stack exchange,提问作者Abhishek Chatterjee
相关产品推荐
相关产品推荐

