Класс: кодер. CellType
Пакет: кодер
Создайте гомогенную копию типа массива ячеек
newt = makeHomogeneous(t)
t = makeHomogeneous(t)
создает объект newt
= makeHomogeneous(t
)coder.CellType
для гомогенного массива ячеек newt
от объекта coder.CellType
t
.
Чтобы создать newt
, метод makeHomogeneous
должен определить размер и класс, которые представляют все элементы t
:
Если элементы t
имеют тот же класс, но различные размеры, элементы newt
являются переменным размером с верхними границами, которые размещают элементы t
.
Если элементы t
имеют различные классы, например, char
и double
, метод makeHomogeneous
не может создать объект coder.CellType
для гомогенного массива ячеек.
Классификация как гомогенная является постоянной. Вы не можете позже создать неоднородный объект coder.CellType
из newt
.
создает гомогенный объект t
= makeHomogeneous(t
)coder.CellType
из t
и заменяет t
на новый объект.
В отображении объекта coder.CellType
условия locked heterogeneous
или locked homogeneous
указывают, что классификация как гомогенная или неоднородная является постоянной. Вы не можете позже изменить классификацию при помощи методов makeHeterogeneous
или makeHomogeneous
.
coder.typeof
определяет, является ли тип массива ячеек гомогенным или неоднородным. Если элементы массива ячеек имеют тот же класс и размер, coder.typeof
возвращает гомогенный тип массива ячеек. Если элементы имеют различные классы, coder.typeof
возвращает неоднородный тип массива ячеек. Для некоторых массивов ячеек классификация как гомогенная или неоднородная неоднозначна. Например, тип для {1 [2 3]} может быть 1x2 неоднородный тип. Первый элемент является двойным, и второй элемент 1x2 дважды. Тип может также быть 1x3 гомогенный тип, в котором элементы имеют класс дважды и размер 1x:2. Для этих неоднозначных случаев coder.typeof
использует эвристику, чтобы классифицировать тип как гомогенный или неоднородный. Если вы хотите различную классификацию, используйте методы makeHeterogeneous
или makeHomogeneous
.