1

サーバーを呼び出したいのですが、データ (この場合は remoteIdKey) が古くなっている場合に限ります。これが私がやっている方法です:

object remoteCaller {

 def getRemoteKeyId = {

   // do we need to get the data from the server?
   if (currentTime - lastCallTime >= 1000) {
      remoteId = makeRemoteCall
      lastCallTime = currentTime
    }

    remoteId
  }

  private var remoteId = 0
  private def currentTime = //....
  private var lastCallTime = //....
  private def makeRemoteCall = { //remote call to the server to get the remote Id key} 
}

問題は、remoteCallerand の状態を変更することです。そのため、var代わりに を使用しvalます。また、クラスの代わりにオブジェクトを使用して、そのインスタンスのみになるようにします。

remoteCaller を不変にするにはどうすればよいですか、または機能的なスタイル (突然変異なし) にするにはどうすればよいですか?

4

1 に答える 1