我正在尝试将python库重写为Scala,以便与新项目更加兼容。 Python版本有一些基于dict的内存存储
class InMemoryStorage(BaseStorage):
def __init__(self, config):
self.name = 'dict'
self.storage = dict()
def keys(self):
return self.storage.keys()
def set_val(self, key, val):
self.storage[key] = val
def get_val(self, key):
return self.storage[key]
def append_val(self, key, val):
self.storage.setdefault(key, []).append(val)
def get_list(self, key):
return self.storage.get(key, [])
我的scala版本还不太成熟,还不能确定是否需要改进它,因为我刚接触scala移植,它变得非常困难。我错过了什么?重写得够近了吗?你知道吗
class Storage {
val internalStorage=new HashMap[String, Set[String]] with MultiMap[String, String]
def keys():Iterable[String]={
internalStorage.keys
}
def set_val(key:String,value:String)={
internalStorage.addBinding(key,value)
}
def get_val( key:String):Set[String]= {
return internalStorage(key)
}
def append_val( key:String, value:String)={
internalStorage.addBinding(key,value)
}
def get_list(key:String):Set[String]={
internalStorage(key)
}
}
您走的是正确的道路,
set_val
需要重写初始的(key, value)
(如果存在)并重新开始(从python代码中可以看到):另外,由于
internalStorage
仅使用存储进行访问,因此您可能希望使其private
。你知道吗相关问题 更多 >
编程相关推荐