存儲一張圖片,常見兩種思路: 1. 存儲 寬高、每個像素的 RGBA 值——點陣圖 1. 存儲 寬高、每個幾何圖形——矢量圖 一張圖片,如果幾何圖形關係明確,用矢量圖來存儲,不但空間占用少,而且信息比點陣圖全。因為點陣圖沒有表達出幾何圖形的關係,在縮放時點陣圖只好失真。 同理,存儲一系列數據時: 1. 如果 ...
存儲一張圖片,常見兩種思路:
- 存儲 寬高、每個像素的 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; } }
在編程時,多數情況下我們用第一種方式存儲數據,例如用數組存下所有數據。
但有時我們也需要使用第二種方式,因為我們不知道需要多少數據。有時候是真的不知道;有時候是不想知道,比如為瞭解耦。