值可以是标量还是数组的技术术语是什么?

时间:2016-07-30 20:30:06

标签: arrays typescript naming

我正在使用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);
}

无论如何,正如你所看到的那样,我会选择&#34; poly&#34;,但是,是否有任何既定的术语或其他好的建议?

4 个答案:

答案 0 :(得分:6)

首先,标量和数组之间的区别不在于元素的数量,而在于维数。
标量数组。具体来说,它们是0维数组。所以你只需要调用所有数组。

但请注意,通常重点不在于变量可以持有的值,而是在变量的潜在值上允许操作

有些操作可以从1个元素推广到N个元素,这似乎就是你想要的。

此类操作的CS-y术语是&#34; 矢量化操作&#34;。
这种操作的数学术语是&#34; lifting operation&#34;。

答案 1 :(得分:3)

我从来没有听说过这样的事情,并且从这里显示的可用JSON数据类型的事实来判断 http://www.tutorialspoint.com/json/json_data_types.htm没有提到与这种数据类型相关的任何内容,我敢打赌这只是在幕后实现的烟雾和镜像。

标量值和数组的结构非常不同。将这两者组合成真正的数据类型将是自相矛盾的。我敢打赌,当变量被实例化时,会在某处调用方法来检查数组或标量值的值,此时会发生以下两种情况之一。 1-数据类型自动设置为数组,如果给出标量,则将其转换为长度为1的数组,每当在后台调用数组时,将在索引0处访问数组。或者2-后面scene方法检查传入的数据类型是什么,并为实例化实例化之前给定的变量设置相同的数据类型。

如果MonoPoly Mohn-O-Pohl-E (如果你因为我找不到任何其他东西来调用它而且它看起来像Monopoly)是一个标量并被设置为一个数组在某些时候,数据类型可以销毁旧值,并且可以使用相同名称但作为数组分配新值。这种情况可能相反,所有这些都可以在幕后完成,使得这种数据类型看起来包含标量和数组的描述。

答案 2 :(得分:1)

  

是否有任何既定术语或其他好处   建议?

我将忽略“既定的术语”,也可能“好”,并在语言基础上提出以下建议。我个人的选择,因为它有一个或多个梯级的感觉,并且它是标量的拉丁语起源,将是:

<强>梯

另一个可能的名词:

<强>集合

常量一样,我认为以下形容词已成熟成为名词:

不稳定(类似于 incontinent ,“不充分的自愿控制”,这似乎是您在此API问题上所描述的。)

<强>转让

indiscrete (很好地与 indiscreet 谐音)

<强>两用

多用途(我们学校喜欢的形容词)

这甚至可能成为一个新词的机会:

<强> polyunary

多功能性(我的第二个最爱)

答案 3 :(得分:1)

当另一个元素被“添加”到一个插槽时,这样的功能很可能用数组替换一个标量。 AFAIK没有这个术语,所以问题似乎更像是一个英语问题。

试试这些:

  • 弹性标量
  • 可扩展标量
  • scarray(标量/数组)
  • scalarray(另一个portmanteau)
  • arrayable
  • tardis(比看上去更多)