如何解决标量在perl中是什么意思?
在 perl 中,您有三个主要的 the Image related p5js functions,“标量、标量数组和标量关联数组”。 perl 到底想用“标量”这个名字表达什么?什么是隐喻,应该形成的心理形象?
我可以推断出一个类比:单个值、一个值列表、一个命名值列表。但这并不能帮助我理解为什么使用“标量”这个词。 Perl 的标量肯定不会data types。
解决方法
这个概念原则上在Variable (Computer Science)中有描述,其中说:
在计算机编程中,变量或标量是一个存储位置 (由内存地址标识)与相关的符号配对 名称,其中包含一些已知或未知的信息量 称为值。变量名是通常的方法 除了引用变量之外,还引用存储的值 本身,取决于上下文。
在 Perl 中,标量变量保存单个值。虽然 Perl 标量通常与符号名称相关联,但并非必须如此;您可以拥有一个仅由标量引用引用且不与符号配对的标量。计算机编程中“标量”一词的用法可能源自数学中的类似用法,如Scalar (Mathematics) 中所述:
标量是用于定义向量的字段元素 空间。由多个标量描述的数量,例如同时具有 方向和大小,称为向量。
应用于 Perl,标量在 perldoc perldata 中描述:
一个标量可以包含三个不同值中的任何一个值 风味:数字、字符串或引用。一般来说,转换 从一种形式到另一种形式是透明的。虽然标量可能不 直接持有多个值,它可能包含对数组的引用 或 hash 又包含多个值。
Perl 标量,在内部存储一些东西;一个 IV(整数值)、一个 NV(浮点数值)、PV(指向字符串值的指针)、SV(一个引用)、一个引用计数、一些用于跟踪标量是否具有 Unicode 语义的各种标志,其他”魔术”,以及正在使用的各种存储类型中的哪一种。并非所有这些存储桶在任何给定时间都在使用中,填充哪些存储桶取决于标量的定义方式和使用方式(包含字符串的标量稍后可能会在内部填充 IV 或 NV 字段,如果它被视为数字)。这在 perlguts 中有描述,但您通常无需担心。
您可以非正式地将标量视为单个存储单元,其中可能包含数字、字符串或引用。您可以将标量视为独立变量、标量引用所引用的存储单元或数组或散列的单个元素。
,标量是单个不同的值,例如 47 或“Bob Smith”。标量变量使用 $
符号。
my $score = 47;
my $name = "Bob Smith";
数组是由 0 个或多个标量组成的有序列表,可由非负整数索引。数组变量使用 @
符号。
my @scores = ( 47,52,34 );
my @names = ( "Bob Smith","Susan Richardson","Heather Jones" );
my $first_score = $scores[0]; # 47
my $last_score = $scores[-1]; # 34,indexed from the end
散列或关联数组是映射到标量的字符串的无序列表。哈希变量使用 %
符号。
my %scores = (
"Bob Smith" => 47,"Susan Richardson" => 52,"Heather Jones" => 34,);
my $score_for_susan = $scores{"Susan Richardson"}; # Has the value 52
my $score_for_doug = $scores{"Doug Thompson"}; # Has the value undef
# because the key "Doug Thompson" does not exist in %scores.
在查找值时,像 %scores
这样的散列表示为 $scores
可能会令人困惑。