Есть ли способ создать битовый тип с отсутствующими значениями в Julia?

#arrays #julia #missing-data

Вопрос:

Для Mmap статических массивов нам нужно, чтобы данные были «битовым типом» (имели фиксированный размер хранилища в памяти, afaik). Если в наборе данных отсутствуют значения, типичный способ их хранения заключается в том, что тип столбца находится Union{Missing,T} там, где T находится тип, когда он не отсутствует. Однако, isbitstype(Union{Missing,T})=false даже если isbitstype(T)=true (бывает и так isbitstype(Missing)=true ).

Существует ли параметрический тип a bitstype для разрешения пропущенных значений в Julia? или вообще для определения объединений битовых типов битовых типов. Я бы предположил, что размер должен быть только на 1 бит больше (или, по практическим соображениям, на 1 байт больше), чем максимальный из двух базовых типов.

В противном случае, каков «правильный способ» справиться с этим делом?

Комментарии:

1. Для этого нужен либо массив полей, либо второй массив тегов типов; прочитайте это .