我正在使用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;,但是,是否有任何既定的术语或其他好的建议?
答案 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没有这个术语,所以问题似乎更像是一个英语问题。
试试这些: