-1

在 Scala 中是否可以创建一个对象并将其保存在内存中?我希望这个问题还不存在。我至少没有找到任何 Scala 特定的东西。

问题是,我想读取某个国家/地区的邮政编码数据的 CSV 文件(它不是太大,所以它应该适合内存)并将邮政编码和相应的城市存储到一个对象中(例如带有邮政编码作为键,citi(es) 作为值)。稍后我想在此对象中搜索特定的邮政编码。如果存在?如果是这样,那么我也想给出相应的 Citi(es)。但是现在我不想每次调用这个函数时一次又一次地读取 CSV 文件。这就是为什么我想将数据保存到内存中的一个对象中。scala有没有办法做到这一点?如何检查对象是否已存在于内存中,或者我是否必须创建它?

有没有人暗示我应该寻找什么?

4

1 回答 1

1

After you create your map, it will remain in memory until it is garbage collected. If no objects reference your map, the garbage collector is likely to delete it. You can either pass the reference to your map around your program so it is never deleted, or make it static.

In Java you could put it as a static member in a class - the parallel in Scala is to put it in a singleton object that may look something like this:

object storedData {
  lazy val data : Map[...] = // read file
}

You can then read from this by calling storedData.data from anywhere in your program.

于 2013-05-08T14:47:00.187 回答