ruby - 一元问号 (?) 运算符的作用是什么?

标签 ruby operators

我在 HAML 代码中看到了这个运算符。我想知道它有什么用。

我看到了以下作品:

> ?{
=> "{" 
> ?\s
=> " " 
> ?a
=> "a" 

这行不通:

> ?ab
SyntaxError: (irb):4: syntax error, unexpected '?'

所以我想它接受一个字符作为参数并返回一个包含该字符的字符串。

问题:

  1. 这个接线员是做什么的?
  2. 应该什么时候使用它?
  3. 如果它真的只创建一个字符的字符串,为什么它会包含在语言中?它不会破坏语言的正交性吗?有什么好处?

最佳答案

它返回单个字符串。这是编写单字符字符串文字的最短方法。当你想定义很多单字符字符串时使用它。它是 Ruby <1.9 的继承,它用于返回该字符的 ASCII 代码。我不明白你所说的“打破语言正交性”是什么意思。

关于ruby - 一元问号 (?) 运算符的作用是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16641205/

相关文章:

ruby - 构建 Gem 时出错

ruby - OS X 上的 Camellia Ruby 计算机视觉库

php - 我可以在 php 中为变量设置逻辑运算符吗

string - 是否可以重载字符串的运算符?

java - 你如何声明 x 和 y 以便 x+=y 给出编译错误而 x=x+y 没有?

ruby-on-rails - 每当 gem 不自动运行?

ruby-on-rails - rspec 堆栈级别太深

javascript - VBA 和 Javascript bool 表达式有什么区别?

c++ - C中的波浪号运算符

arrays - 多个数组中元素的组合