ruby - '?' 的单字母字符串表示
问题描述
我在控制台中观察到了这一点,并irb
在
> ?#'a'
=> "#a"
> ?#
=> "#"
> ??
=> "?"
> ?..class
=> String
> self.method('?')
# NameError (undefined method `?' for class `#<Class:#<Object:0x08ce9188>>')
以上适用于单个字符,而不适用于以下情况
> ?1
=> "1"
> ?11
Traceback (most recent call last):
1: from /home/prs/.rvm/rubies/ruby-2.5.3/bin/irb:11:in `<main>'
SyntaxError ((irb):33: syntax error, unexpected '?')
我找不到上述任何文档,也无法获得这种实施的实际目的。
请帮助我进行正确的解释以及可以有效使用的地方(如果提供示例,将不胜感激)。
解决方案
还有一种字符文字表示法来表示单个字符串,其语法是问号 (?) 后跟单个字符或转义序列,对应于脚本编码中的单个代码点:
?a #=> "a"
?abc #=> SyntaxError
?\n #=> "\n"
https://ruby-doc.org/core-2.3.0/doc/syntax/literals_rdoc.html#label-Strings
推荐阅读
- django - 如何将 CLOSESPIDER_ITEMCOUNT 与 scrapyd 一起使用?
- react-native - Expo / ReactNative - React Navigation - 条件认证流程
- python - 我试图让我的 discord.py 机器人在执行后立即删除一个 ping,但它不起作用
- mysql - 如何显示一个月内每一天的多个结果计数
- php - 多类别架构中的表格
- python - 没有这样的元素例外。无法在 selenium python 中找到元素
- laravel - 如何设置语言环境和重定向逻辑 Laravel 5
- facebook-graph-api - API Messenger 从平台 instagram 获取对话
- strategy-pattern - 使用策略模式删除 if-else 代码
- javascript - Axios 代理请求 net::ERR_CONNECTION_REFUSED