当前位置:  开发笔记 > 编程语言 > 正文

Perl中的标量和列表上下文之间有什么区别?

如何解决《Perl中的标量和列表上下文之间有什么区别?》经验,为你挑选了1个好方法。

Perl中的标量和列表上下文之间的区别是什么?它在Java或Javascript等其他语言中是否有任何并行?



1> Jonathan Lef..:

Perl中的各种运算符是上下文敏感的,并且在列表和标量上下文中产生不同的结果.

例如:

my(@array) = (1, 2, 4, 8, 16);
my($first) = @array;
my(@copy1) = @array;
my @copy2  = @array;
my $count  = @array;

print "array: @array\n";
print "first: $first\n";
print "copy1: @copy1\n";
print "copy2: @copy2\n";
print "count: $count\n";

输出:

array: 1 2 4 8 16
first: 1
copy1: 1 2 4 8 16
copy2: 1 2 4 8 16
count: 5

现在:

$first包含1(数组的第一个元素),因为括号中my($first)提供了一个数组上下文,但是只有一个值的空间$first.

双方@copy1@copy2包含副本@array,

并且$count包含5,因为它是标量上下文,并@array在标量上下文中计算数组中元素的数量.

也可以构建更详细的例子(结果是读者的练习):

my($item1, $item2, @rest) = @array;
my(@copy3, @copy4) = @array, @array;

我所知道的其他语言中的列表和标量上下文没有直接并行.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有