← eetop.cn_Perl语言入门(第四版小骆驼书)

推荐答案 测试一下

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 上下文决定类型
  • 数值上下文与字符串上下文
  • 操作符强制上下文
  • 自动类型转换规则
  • 比较运算符区别
← 上一题
登录后反馈错题
下一题 →