Scala有可能創建一個對象並將其保存在內存中嗎?我希望這個問題不存在。我至少沒有發現任何Scala特定的東西。如何在Scala中保留一個對象在內存中?
問題是,我想讀取某個國家的郵政編碼數據的CSV文件(它不是太大,所以它應該適合內存)並將郵政編碼和相應的城市存儲到一個對象中(例如一個地圖,郵政編碼爲關鍵字,Citi爲值)。稍後我要在此對象中搜索特定的郵政編碼。如果存在?如果這樣做,我也想給出相應的Citi(es)。但是現在我不想在每次調用這個函數時都一次又一次地讀取CSV文件。這就是爲什麼我想將數據保存到內存中的對象。 scala有沒有辦法做到這一點?我如何檢查對象是否已經存在於內存中,或者我是否必須創建它?
有沒有人有暗示我應該找什麼?
是的,它被稱爲*變量*。這樣的機制是幾十年前發明的,根本不是scala特有的;-)只要讀取csv並將數據放入'Map'結構。 – 2013-05-08 14:37:18
是的,我想將內容存儲到一個Map變量:)但是,如果我再次調用該函數,我怎麼知道該變量是否已經存在或沒有?我怎樣才能檢查這個? – bam098 2013-05-08 15:06:56
在scala中,變量存在(根據*聲明*)在編譯時檢查。還有變量*實例化的概念*:變量可能被聲明,但尚未設置。對於引用類型(如Map是)聲明的,但尚未初始化的變量被設置爲* null *(就像在java中一樣),所以如果你想檢查變量foo是否被設置爲*一些有意義的*值,它是通常足以將foo與null進行比較:'foo == null'。不要把它當作冒犯,但是也許你最好採取一些編程課程,甚至可以看一下java書(比如*在java *中思考) - ... – 2013-05-08 15:19:42