ruby - 获取与另一个偏移的字符

标签 ruby

我想像 'a' + 2 = 'c' 这样写,所以我写道:

('a'.ord + 2).chr

是的,我得到了“c”。

但它看起来很多余。有没有更好的直接方法来做到这一点?使用 1.9.3

最佳答案

一个非常非常糟糕的方法是这样的:

class String

  alias_method :original_plus, :+

  def +(other)
    if self.length == 1 and other.is_a?(Fixnum)
      (self.ord + other).chr
    else
      original_plus(other)
    end
  end

end

puts 'a' + 2
=> c

关于ruby - 获取与另一个偏移的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10247440/

相关文章:

ruby - 在 Yosemite 10.10.3 上安装 Nokogiri

ruby - 让 RVM 与 Jenkins Pipeline 配合使用

ruby-on-rails - 带有 docker 和文件所有权的 Rails 脚手架

ruby - 是否有更多惯用的 ruby​​ 来执行此迭代?

ruby-on-rails - Range.include 之间的区别?和 Range.member?在 ruby

ruby-on-rails - Rails 4 - 政治家 - 没有方法错误

ruby - 为什么我的埃拉托色尼筛法算法失败了?

ruby - Sinatra:热代码插入生产?

ruby-on-rails - 尝试启动 Rails 服务器时出现语法错误

ruby-on-rails - `block in <main>' : undefined method `[]' for nil:NilClass (NoMethodError)