Answers:
术语“标量”来自线性代数,用于将单个数与向量或矩阵区分开。计算中的含义相似。它将单个值(如整数或浮点数)与数据结构(如数组)区分开。这种区别在Perl中非常突出,其中$
sigil(类似于's')用于表示标量变量,而@
sigil(类似于'a')则表示数组。它与元素本身的类型无关。它可以是数字,字符,字符串或对象。所谓的标量是其中之一。
int
或的简单“构建块”类型char
,而不是诸如对象的结构化类型(即使只有一种)。
标量只是一个拥有单个值的变量。为了便于讨论,我们假设标量是单个数字,而不是数字的集合。
例如,SQL查询的结果返回一个数字而不是一个元组,SQLCommand类中的ExecuteScalar()方法也是如此,该方法返回查询返回的结果集中第一行第一列的值。它通常用于检索聚合值,例如COUNT或AVERAGE,新记录的ID或查询处理的记录数。
补充助记符,用于纪念卡尔·比勒费尔德(Karl Bielefeldt)的出色答案:
一种简单的思考方式是“这可以规模化吗?”
整数可以是小数位数。
固定大小的整数可以标度,例如,从-2147483648到2147483647。
实数可以成比例。
字符,布尔值或固定精度的十进制都可以标度。甚至字符串也可以按比例缩放(我们在排序时使用了这种方式)。
因此是“标量”。
数据库行不能成比例。复数不能成比例。表示电子邮件的对象不能按比例缩放。数组,向量或矩阵不能成比例。
就像许多计算中的情况一样;这个词的起源与更多的物理性质有关。术语“标量”在计算中相对较旧。这些天的定义不太严格。当您将数据存储在计算机内存中时,该数据可以装入一个地址(1个字节*),也可以不装入一个地址。当它成立时,它被称为标量;当它没有成立时,它被称为复合。主要是因为CPU一次只能处理一个地址/一条数据(= 1个字节)。正如@Karl Bielefeldt所说;这个词确实来自代数。
我们将字符串称为字符串,因为它是一个字符字符串。字符是标量,是标量,而字符串是标量。在多个地址中存储1个数据(数据)会使该行有些模糊。这样想:当CPU可以在一条指令中处理数据时,它就是标量。
如今,标量是任何奇异值,并且在不同语言之间可以定义不同的奇异值。如今,在大多数情况下,整数,浮点数,字符,字符串,布尔值和枚举都是标量。数组,列表,树,对象等不是。
(*我说的是1个字节,以便保持清楚,但从技术上讲,我是在谈论例如6比特在打孔卡上更常用,后来在磁条上更常用的6位)
免责声明:我无法在互联网上找到任何相关参考,我从学校和旧书中获得了这些信息,其中包括(我认为):1944年的数学表和其他计算辅助工具。也就是说,我的记忆是而不是以前的样子,因此如果有人可以修改/确认或拒绝我的回答,那将是很好的。
标量是一个简单的单一数字值(例如1、2 / 3、3.14等),通常是整数,不动点或浮点数(单或双),与数组,结构,对象,复数矢量(实数加上虚数或量级加上角度分量),包含多个单个数值的高维向量或矩阵(等)数据类型。
但是,请注意,也可以展平并以8位字节的计算机内存表示的那种非常复杂的大型数据类型也可以表示为一个非常长/很大的二进制标量数。图灵使用此技术将整个计算机程序表示为一个标量。
标量一词源自拉丁语scalaris,它是斯卡拉语的形容词形式(拉丁语为“梯子”)。英语单词“ scale”也来自scala。资源
标量是持有单个值的变量。
例如:
标量变量:假设您试图将各种学生的姓名表示为一组变量。每个单独的变量都是标量变量,如下所示
NAME01="Zara"
NAME02="Qadir"
NAME03="Mahnaz"
NAME04="Ayan"
NAME05="Daisy"
标量函数:SQL标量函数根据输入值返回一个值。
UCASE() - Converts a field to upper case
LCASE() - Converts a field to lower case