這更像是一個普遍的問題,但我不知道不同編程語言的空間是否不同,所以我用actionscript-3標記了它。我有很多實例,我需要一個通常爲1個元素的向量,但可能更多次。例如,如果我使用int而不是1 int的向量,我可以節省多少內存?假設我有一個函數可以對矢量中的所有數字執行一些操作。輸入通常是單個int,但有時我可能需要更多。矢量的大小也是固定的,所以我沒有機會將1個元素的矢量變成2個元素。Vector元素佔用多少空間?
現在我可以做兩兩件事:
1)我只能用向量和有一個函數,它在一個載體上,或者
2)我可以定義1個函數,它在單個int另一個函數可以完成同樣的事情,但可以接受int的Vector。
或者我可能會採取任何類型的參數,檢查輸入的類型,然後將其轉換爲整數或向量?基本上,我應該製作迎合兩種情況的2個函數還是僅使用矢量的1個函數?
如果第二個功能不能訪問第一個功能,該怎麼辦?考慮一下我所說的int實際上是某個Class的成員,並且我必須爲這個vector創建另一個Class。如果我只使用矢量,我只能使用1個類,但現在我必須使2個。這2個類似乎以某種方式連接,但我不知道如何。帶有向量的類不需要繼承額外的int,我真的不知道我是否可以將它們組合在一起。我無法找到一個好的解決方案。 – Meteorites
好的,所以在試圖理解這個問題時,我看到了兩種可能性。 1)你正在談論一個像「completionTimes」這樣的屬性,用戶可能玩過遊戲0,1次或多次的遊戲。在這種情況下,請使用100%矢量路線,並且該屬性可能有也可能沒有值。 2)如果必須將它們分開,請使用類似於IntUtil.doSomethingToAVecotrOfInts()和IntUtil.doSomethingToAnInt()的靜態方法。通過這種方式,您可以導入該類,並在需要時使用它的靜態方法(並且這兩個函數始終可用)。 –
我完全不知道「completionTimes」是什麼意思,但是如果我讓這個函數成爲靜態的,我需要將它自己的類自己的成員傳遞給類。比方說,例如,我有一個Lock,它有一個整數鍵作爲成員。它有一個函數,用於檢查輸入是否是鍵,如果是鍵則打開。現在,考慮一個多鑰匙鎖,它需要打開多個鑰匙。創建完成後,單鍵鎖定不會更改爲多鍵鎖定。我通常會使用1個鑰匙鎖,但有時我需要一個多鑰匙鎖。我可以讓他們2個獨立的類,或者只有一個類MultiKeyLock。 – Meteorites