Подтвердить что ты не робот

Каков технический термин для значения, которое может быть либо скаляром, либо массивом?

Я работаю с форматом JSON API, который имеет понятие свойства data, которое может содержать либо скалярный (одиночный), либо массив (несколько ) стоимость. Я пишу код для кодирования и декодирования в формат, а при названии моих типов пытался найти хорошее имя для таких типов значений. В TypeScript это будет

type Poly<T> = T | T[];

Для вашей информации, вот соответствующая часть документа JSON API (мой акцент):

Первичные данные ДОЛЖНЫ быть или:
    объект одиночный ресурс, один объект идентификатора ресурса или null, для запросов, предназначенных для одиночных ресурсов
    массив объектов ресурсов, массив объектов идентификатора ресурса или пустой массив ([]) для запросов, предназначенных для коллекций ресурсов

В качестве примера здесь представлена ​​функция отображения для таких значений мутанта:

function polymap<T, U>(data: Poly<T>, fn: (input: T) => U, thisArg?: any): Poly<U> {
  if (data instanceof Array) return (data as T[]).map(fn, thisArg);
  return fn.call(thisArg, data as T);
}

В любом случае, как вы можете видеть, я собираюсь использовать "поли", но есть ли какая-либо установленная терминология для этого или другие хорошие предложения?

4b9b3361

Ответ 1

Во-первых, разница между скалярами и массивами - это не количество элементов, а размерность. Скаляры - это массивы. В частности, это 0-мерные массивы. Таким образом, вы просто вызываете все массивы.

Но обратите внимание, что обычно фокус не зависит от того, какие значения может удерживать переменная, но какие операции допустимы для переменных значений потенциала.

Некоторые операции могут быть обобщены от 1 элемента до N элементов, которые, похоже, вам нужны.

Член CS-y для такого рода операций представляет собой операцию векторизации.
Математический термин для такого рода операций - это операция подъема.

Ответ 2

Я никогда не слышал ничего подобного и судя по тому, что доступные здесь типы данных JSON http://www.tutorialspoint.com/json/json_data_types.htm не упоминает ничего, связанного с таким типом данных, я уверен, что это просто дым и зеркала, реализованные за кулисами.

Скалярные значения и массивы структурированы по-разному. Сочетание двух в истинном типе данных само противоречило бы. Я уверен, что когда экземпляр переменной создается, метод вызывается где-нибудь, чтобы проверить значение для массива или скалярного значения, и в этот момент происходит одна из двух вещей. 1- Тип данных автоматически устанавливается как массив, и если задан скаляр, он преобразуется в массив длиной 1 и всякий раз, когда он вызывается за кулисами, к массиву обращается индекс 0. Или 2- scenes проверяет, какой тип данных был передан, и устанавливает один и тот же тип данных для переменной, указанной до фактического выполнения экземпляра.

Если MonoPoly Mohn-O-Pohl-E (если вы хотите, потому что я не могу найти что-либо еще, чтобы вызвать его, и он выглядит как монополия) был скаляром и в какой-то момент был задан тип данных массива старое значение может быть уничтожено, а новое назначено с тем же именем, но как массив. Это может произойти наоборот, и все это можно сделать и за кулисами, заставив этот тип данных разместить описание скаляра вместе с массивом.

Ответ 3

существует ли какая-либо установленная терминология для этого или другая полезная предложения?

Я проигнорирую "установленную терминологию" и, вероятно, "хорошо", а также сделаю следующие предложения на лингвистической основе. Мой личный выбор из-за его чувства одной или нескольких ступеньков и его латинского происхождения скаляра был бы следующим:

лестница

Другое возможное существительное:

сборище

Подобно константе, я думаю, что следующие прилагательные созревают, чтобы стать существительными:

непостоянный (по аналогии с недержанием, "недостаточный добровольный контроль", который, по-видимому, является тем, что вы описали по этой проблеме API.)

передачи

indiscrete (красиво гомофонический до нескромного)

двойного назначения

многоцелевой (прилагательное, которое любят наши школы)

Это может быть даже возможностью создать новое слово:

polyunary

versutility (мой второй любимый)

Ответ 4

Такая функциональность, вероятно, заменяет скаляр массивом, когда в слот добавляется еще один элемент. AFAIK там нет термина для этого, поэтому вопрос кажется скорее вопросом английского языка.

Попробуйте следующее:

  • упругий скаляр
  • расширяемый скаляр
  • scarray (scalar/array)
  • scalarray (другой portmanteau)
  • arrayable
  • tardis (хранится больше, чем кажется)