gpt4 book ai didi

Perl 连接运算符与追加运算符

转载 作者:行者123 更新时间:2023-12-02 04:28:12 24 4
gpt4 key购买 nike

首先,这是直接来自学习 Perl(第 29 页)的示例

# Append a space to $str
$str = $str . " ";

# The same thing with an assignment operator
$str .= " ";

出于速度或语法原因,这些方法是否更“正确”或更优选?

最佳答案

查看每个选项的简明输出:

perl -MO=Concise,-exec -e 'my $str = "a"; $str  = $str . " ";'
1 <0> enter
2 <;> nextstate(main 1 -e:1) v:{
3 <$> const[PV "a"] s
4 <0> padsv[$str:1,2] sRM*/LVINTRO
5 <2> sassign vKS/2
6 <;> nextstate(main 2 -e:1) v:{
7 <0> padsv[$str:1,2] s
8 <$> const[PV " "] s
9 <2> concat[$str:1,2] sK/TARGMY,2
a <@> leave[1 ref] vKP/REFC
-e syntax OK
perl -MO=Concise,-exec -e 'my $str = "a"; $str .= " ";'
1 <0> enter
2 <;> nextstate(main 1 -e:1) v:{
3 <$> const[PV "a"] s
4 <0> padsv[$str:1,2] sRM*/LVINTRO
5 <2> sassign vKS/2
6 <;> nextstate(main 2 -e:1) v:{
7 <0> padsv[$str:1,2] sRM
8 <$> const[PV " "] s
9 <2> concat[t2] vKS/2
a <@> leave[1 ref] vKP/REFC
-e syntax OK

虽然它们略有不同(.= 在空上下文中进行串联,另一个在标量中进行串联),但选择其中之一的主要原因是样式/可维护性。我更喜欢写:

$str .= " ";

主要是为了便于键入,并且因为很明显您要 append 到字符串末尾,而无需检查右侧的变量是否与左侧相同。

本质上:使用你喜欢的任何一个!

关于Perl 连接运算符与追加运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388175/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com