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

在Scala中的类/函数中使用相同的变量,scala,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 ClassO

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

我是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)
  }
}

我不确定我是否正确地理解了你。若你们想在方法中使用rcx,rcy变量,为什么你们不能简单地这么做呢

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

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

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")
  }
}

你好@BalajiKrishnamoorthy,你能更清楚地知道你到底想做什么吗?我不知道你想重用哪个变量。我只需要在类外和函数内使用rcx,rcy,所以你的意思是不创建
x
&
y
?-因此,在函数体内部使用
rcx
rcy
?是的,正确,我只需要在类/函数体中使用rcx,rcy。由于iam处于学习曲线中,因此不可能在函数/类中传递相同或使用相同的变量advise@BalajiKrishnamoorthy,我的理解和Okrm完全一样,我将发布相同的答案。但是,我仍然无法确切理解“在函数/类中使用相同的变量”的含义,也许您关心的是变量的范围?是的,我想知道我是否可以将值从类传递到函数以执行操作。类Mynewclass(var rcx:Int,var rcy:Int){def fn()=(rcx=rcx*2y=rcy+2)}}@Balajikrishnamoorth如果函数在类内,函数可以使用和修改(请注意,在函数编程语言中,如scala,我们更喜欢不变性)类范围内的任何变量/值-如果方法在类外,你需要一个类的实例,如果这个字段是公共的,你也可以使用它。