推荐答案
测试一下
题目
2.4数字和字符串之间的自动转换
参考答案与知识点
参考答案
这完全依赖于标量值之间的的操作符 。如果操作符 (如+)需要数字 ,Perl将把操作数当作数字看待 。如果操作符需要
字符串(如.) ,Perl将把操作数当作字符串看待 。不必担心数字和字符串的区别 ;使用恰当的操作符 ,Perl将为你做剩下
的事。
当在需要数字的地方使用了字符串 (如,乘法) ,Perl将自动把字符串转换为其等价的数字 ,就像输入 的是十进制浮点数一
样◆。因此 “12”* “ 3”将给出 36。后面的非数字部分和前面的空格将被去掉 ,如“12fred34”* “ 3 ”将给出 36而不会用任何
提示◆。在极端情形 ,当一个不含任何数字的字符串将别转换为 0。如,将“fred”当作数字来使用时 。
◆用首字符 0表示非十进制值对数字有效 ,对自动转换没有作用 。使用hex()和ort()来转换此类字符串
◆除非你使用了 warnings, 我们将很快讨论到 。
同样,如在需要字符串的地方使用了数字 (如,字符串连接 ) ,数字将转换为字符串 。例如,如果你想在 Z后串接 5乘以 7
的结果◆,可以这样写 :
“ Z”.5 * 7 #同于 “ Z”. 35,或“ Z35”
总之,一句话,不用担心使用的是数字还是字符串 (大多数情况下 ) 。Perl将自动转换它们 ◆。
◆不用担心效率问题 。Perl能记住转换的结果 ,因此这一步只做一次 。
涉及知识点
- Perl 上下文决定类型
- 数值上下文与字符串上下文
- 操作符强制上下文
- 自动类型转换规则
- 比较运算符区别