perl - perl 中的标量是什么意思?
问题描述
在 perl 中,您具有三种主要数据类型,“标量、标量数组和标量关联数组”。perl 究竟想用“标量”这个名字来表达什么?什么是隐喻,应该形成的心理形象?
我可以推断出一个类比:单个值、值列表、命名值列表。但这并不能帮助我理解为什么使用“标量”这个词。Perl 的标量肯定不像梯子。
解决方案
变量(计算机科学)中原则性地描述了这个概念,其中说:
在计算机编程中,变量或标量是与相关符号名称配对的存储位置(由内存地址标识),其中包含一些已知或未知数量的信息,称为值。变量名是引用存储值的常用方法,除了引用变量本身,具体取决于上下文。
在 Perl 中,标量变量保存一个值。虽然 Perl 标量通常与符号名称相关联,但不一定如此;您可以拥有一个仅由标量引用引用且不与符号配对的标量。计算机编程中“标量”一词的用法可能源自数学中的类似用法,如Scalar (Mathematics)中所述:
标量是用于定义向量空间的字段元素。由多个标量描述的量,例如具有方向和大小的量,称为向量。
应用于 Perl,标量在perldoc perldata中描述:
标量可以包含三种不同风格中的任何一种的单个值:数字、字符串或引用。一般来说,从一种形式到另一种形式的转换是透明的。尽管标量可能不直接保存多个值,但它可能包含对数组或散列的引用,而后者又包含多个值。
Perl 标量在内部存储一些东西;IV(整数值)、NV(浮点数值)、PV(指向字符串值的指针)、SV(引用)、引用计数、一些用于跟踪标量是否具有 Unicode 语义的各种标志,其他“魔法”,以及正在使用的各种存储类型中的哪一种。并非所有这些存储桶都在任何给定时间都在使用,而填充哪些存储桶取决于标量的定义方式和使用方式(保存字符串的标量稍后可能会在内部填充 IV 或 NV 字段,如果它被视为一个数字)。这在perlguts中有描述,但您通常不需要担心它。
您可以非正式地将标量视为单个存储单元,其中可能包含数字、字符串或引用。您可以将标量视为独立变量、由标量引用引用的存储单元,或者是数组或散列的单个元素。
推荐阅读
- java - 寻找组合框但不是 Android 微调器
- javascript - 动态切弦
- powershell - 快捷方式未显示 TargetPath
- javascript - 如何编写可以更改对象半径的滑块
- android - 如何防止指纹扫描仪被选作游戏手柄?
- python - 如何修复python中的while语法错误?
- c# - 使用 Microsoft.Xrm.Tooling 创建服务和上下文
- assembly - 这个汇编代码是做什么的,C 代码会是什么样子?
- jquery - Bootstrap 模态第二次不触发 jQuery 函数
- node.js - 检测是否在Nodejs中添加而不是修改文件