【问题标题】:How to add values to a class from another class in Scala?如何从Scala中的另一个类向一个类添加值?
【发布时间】:2019-08-01 21:09:43
【问题描述】:

输入:class Number(changeNum: ChangeNum, 32)

输出:changeNum = 32.0

每次调用类 Method 时,都会在最后一个数字的末尾附加一个数字。所以如果你再次调用class Number(changeNum: ChangeNum, number: Int),号码为45,Class ChangeNum中changeNum的输出将为3245.0

如何在 Scala 中执行以下操作?这是我在下面尝试的。

import javafx.event.ActionEvent
import javafx.event.EventHandler

class ChangeNum() {
    def given(): Double = {
        0.0
    }
}

class Number(changeNum: ChangeNum, number: Int) extends EventHandler[ActionEvent] {
    override def handle(event: ActionEvent): Unit = {
        var changeNum += number
    }
}

【问题讨论】:

  • 如果问题是关于 Scala 的,你为什么把它标记为 Java?
  • 你好 thelegend27!如果您想使用它,您必须这样做,以便您的函数返回更新的值。或者你必须在函数之前(函数外)声明变量
  • 我该怎么做?
  • 我在下面的答案中写了,但基本上只是在外面这样声明:var changeNum: Int,然后去掉函数中的var。

标签: scala function class methods


【解决方案1】:

为了能够根据需要更新 var,您必须将其放在函数之外。您现在所做的是每次调用函数时都添加一个新值。

例如,您可以这样做:

class Number(changeNum: ChangeNum, number: Int) extends 
EventHandler[ActionEvent] {
var changeNumber = changeNum.toString
override def handle(event: ActionEvent): Unit = {
changeNumber.append(number.toString)
}

另外,您想将每个数字附加到末尾。一个简单的方法就是把它放到一个字符串中并使用 append 函数。

【讨论】:

  • 我看不到你在哪里有任何名为计算器的东西。看起来你混合了很多 java 和 scala 代码。如果您不确定 Scala,它可能会帮助您先在 Java 中完成。但听起来错误是你没有定义一个名为calculator的变量?
  • 我也将 var decleration 移到类内部但函数外部。这意味着当您创建一个新号码(应用)时,您也设置了起始号码。我还将它重命名为 changeNumber,以便您可以更好地了解我的意思。但是你用事件做的java代码,我不知道
  • 我做了另一个编辑,我没有看到你想在最后将数字附加到彼此上。所以我添加了一个部分,它变成了字符串,并简单地将数字作为字符串附加到下一个。希望这会有所帮助。
猜你喜欢
  • 1970-01-01
  • 2018-05-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多