将值应用于 def 内的 class 并将其发送到另一个 class 的另一个 val

Apply to value to class inside def and send it to another val at another class

希望你做得很好,我刚刚开始使用基本的 Scala 编程来创建 API。所以我有以下代码的模型产品:

import.blablabla._
case class Product(prodId:Int, prodBig:int, prodPcs:Int, price:Int, resProd:Double)

object Product{
  def add(prodId:Int, prodBig:int, prodPcs:Int): Product = {
    Storage.cnts(prodBig, prodPcs)
    var resProd = ?????????
    val price = 4000
    val resJsn = Product(clientId, prodBig, prodPcs, price, resProd)
    Ok(Json.obj("result" -> resJsn)).withHeaders(
              AUTHORIZATION -> endtoken)
      }

和其他 class 代码如下:

import.blablabla._
case class Storage (resProd: Double)    

    object Storage {
          def cnts(prodBig:Int, prodPcs:Int) {
            val prod = prodPcs/prodBig
            ??????????
          }
        }

我的问题是: 如何将 prod 的值应用到 resProd?以及如何将存储 (resProd) 值应用于 Product class?

处的 resProd

我相信如果您有使用 java 或 scala 的经验,这个问题会很容易回答。谢谢:)

如果您想通过调用 cnts 手动更新 Storage.resProd,我认为这不是一个好主意。您的代码中的伴生对象 object Storage 适用于工厂方法。

所以我推荐
1.在cnts中新建Stroage:

def cnts(prodBig:Int, prodPcs:Int) {
    val prod = prodPcs/prodBig
    new Storage(prod)
}

2。将 cnts 移动到 class 存储:

case class Storage (var resProd: Double) {
   // some update method comes here
}