在Scala的类/函数中使用相同的变量

时间:2018-11-14 21:36:39

标签: scala

我想使用在类中定义的相同变量,并将其传递给函数。
 对于下面的示例,我已经分别使用了它们。

我是Scala的新手,正在学习Scala中的类,对象和函数。

class Mynewclass(var rcx: Int, var rcy: Int)  {
  var x = rcx
  var y = rcy

  def fn(fx: Int, fy: Int): Unit = {
    x = x + fx
    y = y + fy
    println(x,y)
  }
}

object ClassObject_learn {
  def main (args: Array[String]): Unit = {
    val p1 = new Mynewclass(5,6)
    val p2 = new Mynewclass(6,7)
    new Mynewclass(5,6).fn(2,3)
  }
}

2 个答案:

答案 0 :(得分:2)

我不确定我是否正确理解你。如果要在方法中使用rcx,rcy vars,为什么不能简单地这样做呢?

class Mynewclass(var rcx:Int, var rcy:Int)  {
  def fn(fx:Int,  fy:Int) ={
    rcx = rcx + fx
    rcy = rcy + fy
    println(rcy,rcy)
  }
}

答案 1 :(得分:0)

如何在外部函数中修改类变量的示例。

class Point(var x: Int, var y: Int) {
  override def toString: String = s"($x, $y)"
}

object Main {
  def fn(point: Point, fx: Int, fy: Int): Unit = {
    point.x += fx
    point.y += fy
  }

  def main (args: Array[String]): Unit = {
    val p1 = new Point(5,6)
    println(s"p1 = $p1")
    val p2 = new Point(6,7)
    println(s"p2 = $p2")
    fn(p1, 3, 5)
    println(s"p1 = $p1")
    println(s"p2 = $p2")
  }
}