标量在perl中是什么意思?

如何解决标量在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 可能会令人困惑。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?