Ruby:在比较字符串相等性时,“?”运算符的奇特用法

3

我在ftp.rb文件中找到了类似下面的代码。 我想知道以下示例中?的用途。我知道它是检查相等性,但从未见过这样的语法。

p "-" == ?-  # Prints true
p "a" == ?-  # Prints false
1个回答

4

这是一种用于单个字符字符串的旧语法。

?-表示'-'

编辑:事实证明,我错得不能再错了。请参考下面@Jörg的评论。


1
这不是一个单字符字符串的语法,而是首选字符表示的语法。在旧版本中,字符表示(例如String#[]返回的内容)是代表ASCII码点的Fixnum?字面量会被解析为Fixnum;在新版本的Ruby中,首选字符表示是单个字符的String?字面量会被解析为String。因此,如果你想称它为字符串的语法,你应该称它为新的字符串语法,而不是旧的字符串语法,因为在旧版本中,它是fixnums的语法。 - Jörg W Mittag

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接