作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我有这段代码不起作用:
print $userInput."\n" x $userInput2; #$userInput = string & $userInput2 is a integer
x
相乘的结果。运算符(operator)。当然,这不会发生。现在,当我执行以下操作时它可以工作:
$userInput .= "\n";
print $userInput x $userInput2;
最佳答案
您在询问运算符优先级。 (“链接”通常是指方法调用的链接,例如 $obj->foo->bar->baz
。)
Perl 文档页面 perlop从所有运算符的列表开始,按优先级顺序排列。 x
与其他乘法运算符具有相同的优先级,.
与其他加法运算符具有相同的优先级,所以当然是 x
首先被评估。 (即,它“具有更高的优先级”或“绑定(bind)更紧密”。)
与在 Java 中一样,您可以使用括号解决此问题:
print(($userInput . "\n") x $userInput2);
print
的参数。 , 像这样:
# THIS DOESN'T WORK
print($userInput . "\n") x $userInput2;
print
的返回值若干次。在
(
之前放置空格没有帮助,因为空格通常是可选的并且被忽略。在某种程度上,这是运算符优先级的另一种形式:函数调用比其他任何东西都绑定(bind)得更紧密。
+
打败 Perl运算符(operator):
print +($userInput . "\n") x $userInput2;
print
分开来自
(
,所以 Perl 知道该行的其余部分是一个表达式。一元
+
没有任何作用;它的主要用途正是这种情况。
关于perl - Perl 究竟是如何处理运算符链的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15182925/
Feel free to skip straight to TL/DR if you're not interested in details of the question 简短的序言: 我最近决定
我一直在阅读 A Tour of Go学习Go-Lang到目前为止一切顺利。 我目前在 Struct Fields类(class),这是右侧的示例代码: package main import "fm
Last time I got confused顺便说一下PowerShell急切地展开集合,基思总结了它的启发式如下: Putting the results (an array) within a
我是一名优秀的程序员,十分优秀!