是否可以將顏色轉換為陣列?

是否可以將顏色轉換為陣列?

我想弄清楚是否可以使用這個巨集將colors 轉換為數組{red|green|blue}part

vardef arrayFromColors(suffix $)(text c) =
  save i_ ; i_ = 0 ;
  numeric $[][] ;
  for i = c:
    for j = 0 upto 2:
      if     j = 0: $[i_][j] = redpart   i ;
      elseif j = 1: $[i_][j] = greenpart i ;
      else:         $[i_][j] = bluepart  i ;
      fi
    endfor ;
    i_ := i_+1 ;
  endfor ;
enddef ;

就是這樣使用的

arrayFromColors(A)((0,1,2),(3,4,5));

但它總是失敗並出現以下錯誤:

metafun > log > 錯誤:未實現:十進位(未知數字)

那麼,是否可以將colors 轉換為陣列?

答案1

沒關係,我發現了問題所在。

我嘗試列印完整的數組,A[1]例如,使用message,但似乎message無法在編譯日誌中列印完整的數組。

我嘗試使用另一個手動聲明的數組來檢查

numeric a[] ;
a[0] = 0 ;
a[1] = 1 ;
a[2] = 30 ;
message a ;

並且它失敗並出現相同的錯誤

metafun > log > 錯誤:未實現:十進位(未知數字)

也。

A[1][1]但是,例如,當一個接一個地存取值時,message可以正確列印該值4,因為它應該是我問題中的一小段程式碼。

相關內容