在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,我们更喜欢不变性)类范围内的任何变量/值-如果方法在类外,你需要一个类的实例,如果这个字段是公共的,你也可以使用它。