在雷博爾2,可以使用to char!
生產什麼是一個有效的單字節,你可以在操作使用上的二進制如追加:如何使用單個字節和二進制文件!在Rebol 3中的字節數組?
>> buffer: #{DECAFBAD}
>> data: #{FFAE}
>> append buffer (to char! (first data))
== #{DECAFBADFF}
似乎是合理的。但在雷博爾3,你會得到不同的東西:
>> append buffer (to char! (first data))
== #{DECAFBADC3BF}
這是因爲它沒有單字符作爲單字節(由於Unicode)的模型。所以first data
(255)的整數值轉換成兩個字節:
>> to char! 255
== #"ÿ"
>> to binary! (to char! 255)
== #{C3BF}
鑑於CHAR!不再等同於Rebol 3中的一個字節,也沒有BYTE!數據類型被添加了(這樣一個BINARY!可以被認爲是這些BYTE!的一系列,就像一個STRING!是一系列的CHAR!),這種情況應該怎麼辦?
由於嘗試做一些可能非常少見的事情(使代碼庫在R2或R3上運行),我並不總是注意到「簡單」的答案。看到這一點,我認爲範圍檢查並不是那麼糟糕,我必須進一步考慮它...... – HostileFork