代码之家  ›  专栏  ›  技术社区  ›  adelarsq

如何强制转换函数中已定义的scala值

  •  4
  • adelarsq  · 技术社区  · 14 年前

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

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

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

    谢谢

    2 回复  |  直到 14 年前
        1
  •  10
  •   Daniel C. Sobral    14 年前

    注意 sum 收益率 Unit :

    sum: (x: Double,y: Int)Unit
    

    这是因为您在方法声明和主体之间缺少等号:

    def sum(x:Double, y:Int) {
    

    你应该这样声明:

    def sum(x:Double, y:Int) = {
    
        2
  •  6
  •   pr1001    14 年前

    您的问题不在于强制转换,而在于您的函数定义。因为你建议 = 在函数参数和函数体之前,它返回 Unit (即,没有),正如回复所说: sum: (x: Double,y: Int) 单位 . 简单地加上等号:

    def sum(x: Double, y: Int) = {
      x + y
    }
    

    现在你 sum 方法将返回 Double .