兩種存儲思路

存儲一張圖片,常見兩種思路:javascript

  1. 存儲 寬高、每一個像素的 RGBA 值——位圖
  2. 存儲 寬高、每一個幾何圖形——矢量圖

一張圖片,若是幾何圖形關係明確,用矢量圖來存儲,不但空間佔用少,並且信息比位圖全。由於位圖沒有表達出幾何圖形的關係,在縮放時位圖只好失真。java


同理,存儲一系列數據時:編程

  1. 若是不知道數據的關係,咱們只好 像位圖同樣 把全部數據老老實實地存下來:數組

    [1, 2, 3, 5, 6];
  2. 若是知道數據的關係,咱們就能夠只存數據的關係。
    例如用 Generator 存儲一個斐波那契數列:code

    function* fibGenerator() {
      let a = 1,
        b = 1;
    
      yield a;
      yield b;
      while (true) {
        [a, b] = [b, a + b];
        yield b;
      }
    }

在編程時,多數狀況下咱們用第一種方式存儲數據,例如用數組存下全部數據。
但有時咱們也須要使用第二種方式,由於咱們不知道須要多少數據。有時候是真的不知道;有時候是不想知道,好比爲了解耦。圖片

相關文章
相關標籤/搜索