兩種儲存思路
阿新 • • 發佈:2020-08-07
儲存一張圖片,常見兩種思路:
- 儲存 寬高、每個畫素的 RGBA 值——點陣圖
- 儲存 寬高、每個幾何圖形——向量圖
一張圖片,如果幾何圖形關係明確,用向量圖來儲存,不但空間佔用少,而且資訊比點陣圖全。因為點陣圖沒有表達出幾何圖形的關係,在縮放時點陣圖只好失真。
同理,儲存一系列資料時:
-
如果不知道資料的關係,我們只好 像點陣圖一樣 把所有資料老老實實地存下來:
[1, 2, 3, 5, 6];
-
如果知道資料的關係,我們就可以只存資料的關係。
例如用Generator
儲存一個斐波那契數列:function* fibGenerator() { let a = 1, b = 1; yield a; yield b; while (true) { [a, b] = [b, a + b]; yield b; } }
在程式設計時,多數情況下我們用第一種方式儲存資料,例如用陣列存下所有資料。但有時我們也需要使用第二種方式,因為我們不知道需要多少資料。有時候是真的不知道;有時候是不想知道,比如為了解耦。