【问题标题】:What does ?/ mean in Ruby? [duplicate]?/ 在 Ruby 中是什么意思? [复制]
【发布时间】:2014-04-09 03:23:35
【问题描述】:

我只是偶然发现了这段代码:

if source[0] != ?/
  source = compute_asset_path(source, options)
end

这是什么“?/”?我从没见过这样写字符串。

$ irb
2.0.0p247 :001 > ?/
=> "/" 

显然它只适用于单个字符:

2.0.0p247 :001 > ?a
 => "a" 
2.0.0p247 :002 > ?foo
SyntaxError: (irb):2: syntax error, unexpected '?'

? 是什么意思?

【问题讨论】:

    标签: ruby string


    【解决方案1】:

    ? 用于表示单个字符串文字。像?a,?b 但不是?ab

    回答OP的comment

    是的,他们是。

    irb(main):001:0> ?x + 'y'
    => "xy"
    irb(main):002:0> 'x' + 'y'
    => "xy"
    

    【讨论】:

    【解决方案2】:

    在 Ruby 1.8.x 系列中,它返回 ASCII 值

    alok@alok-desktop:~$ rvm use ruby-1.8.7-p370
    Using /home/alok/.rvm/gems/ruby-1.8.7-p370
    alok@alok-desktop:~$ irb
    1.8.7-p370 :001 > ?F
     => 70 
    

    在 Ruby 1.9+ 中它返回相同的字符串

    1.9.2-p320 :018 > ?A
     => "A" 
    

    【讨论】:

      【解决方案3】:
      $>  "/" == ?/ 
      => true
      

      另一个版本的字符串,但更短:) also true: %{/}

      【讨论】:

        猜你喜欢
        • 2023-03-15
        • 2011-04-17
        • 2011-07-27
        • 2014-11-07
        • 2011-07-10
        • 2016-08-17
        • 2020-10-27
        • 2015-07-15
        • 2018-07-17
        相关资源
        最近更新 更多