查看: 1946|回复: 1

[已经解决] 为什么用“p”命令会出现这些情况?

  [复制链接]
梦石
0
星屑
50
在线时间
24 小时
注册时间
2007-2-9
回帖
292
发表于 2009-7-24 23:17:43 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 DemonPanda 于 2009-7-25 14:49 编辑

1.
p ' \ '     # => " \\ "
2.
p ' \\ '    # => " \\ "
3.
p ' \" '    # => " \\\" "
4.
p " \ "    # => "  "
5.
p " \" "   # => " \" "
梦石
0
星屑
61
在线时间
24 小时
注册时间
2008-8-5
回帖
1912
发表于 2009-7-25 09:48:06 | 显示全部楼层
  • 单引号字符串中的反斜杠,在 p 的时候会用双引号字符串的形式显示出来,要在双引号字符串中表示一个反斜杠则需要使用两个连续的反斜杠来转义其本身(因为反斜杠是用来表示转义码,或者说控制字符的),而 p 函数会调用对象的 inspect 凡方法来显示对象,所以反斜杠本身也会显示出来,用 print 的话则不会
  • 单引号中转义了反斜杠本身,所以还是表示的一个反斜杠
  • 单引号中的双引号不需要转义即可直接表示,所以 \" 反而成了一个反斜杠和一个双引号,而双引号在双引号字符串中就需要反斜杠来转义
  • 反斜杠转义了紧跟着的空格,转义后还是空格,所以输出是两个空格符
  • 反斜杠转义了一个双引号,表示了双引号本身(见 #3)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部