在 ruby 中的正数前加上 + 号

Put + sign in front of positive numbers in ruby

我喜欢在正数前显示一个加号。例子

2.to_s
# returns +2

-2.to_s
# returns -2

您可以使用相当 straight-up 的猴子补丁 Numeric:

class Numeric
  def to_ss   # to signed string
    self.negative? ? self.to_s : "+#{self.to_s}"
  end
end

2.to_ss   # => "+2"
-2.to_ss  # => "-2"
5.7.to_ss # => "+5.7"

如果有更优雅的方法,我不会感到惊讶,但这行得通。

使用带有 + 标志的 Kernel#sprintf

sprintf('%d', 11)
# 11
sprintf('%+d', 11)
# +11

或等效地,String#%:

'%+d<x>' % { x: 23 }
# +23