2016-10-10 38 views
0

希望你做得很好,我剛開始創建API的基本scala編程。所以,我有產品型號與下面的代碼:適用於def的值,並將其發送給另一個類的另一個val

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

和其他類用下面的代碼:

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

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

我的問題是: 我該如何申請督促的價值resProd?以及如何將存儲(resProd)值應用於Product類的resProd?

我相信,如果您有使用java或scala的經驗,這可能很容易回答。謝謝:)

回答

0

如果你想手動更新Storage.resProd通過調用cnts,我不認爲這是一個好主意。伴隨對象,object Storage在您的代碼中,適用於工廠方法。

因此,我建議
1.在碳納米管新建Stroage:

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

2.移動的CNT級存儲:

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

蜂蜜你好,謝謝你的建議。另一個問題是,如何將Storage類的resProd值調用到Product Object? –

+0

@DedenBangkit只需調用resProd'val prod = Storage.cnts(prodBig,prodPcs).resProd',因爲resProd在這裏是一個公共值。 – NaHeon

相關問題