Ruby 的運算子設計極具一致性:大多數運算子實際上是方法呼叫(如 a + b 等同 a.+(b))。本文系統整理算術、比較、賦值、平行賦值、位元、邏輯、三元、範圍、defined?、:: 等運算子,並附優先序表,供開發者快速查閱。
假設 a = 10、b = 20:



一次宣告多變數,或交換值:
# 傳統寫法
a = 10; b = 20; c = 30
# 平行賦值
a, b, c = 10, 20, 30
# 交換兩變數
a, b = b, a
假設 a = 60 (0011 1100)、b = 13 (0000 1101):
a & b = 0000 1100 (12)
a | b = 0011 1101 (61)
a ^ b = 0011 0001 (49)
~a = 1100 0011 (-61,補數表示)


語法:條件 ? 真時值 : 假時值

.. 包含端點,... 排除端點:

判斷運算式是否已定義,回傳描述字串或 nil。
# 用法 1:變數
foo = 42
defined? foo # => "local-variable"
defined? $_ # => "global-variable"
defined? bar # => nil
# 用法 2:方法
defined? puts # => "method"
defined? puts(bar) # => nil
# 用法 3:super
defined? super # => "super" 或 nil
# 用法 4:yield
defined? yield # => "yield" 或 nil
存取常數、類別方法、模組方法:
MR_COUNT = 0
module Foo
MR_COUNT = 0
::MR_COUNT = 1 # 設定全域常數
MR_COUNT = 2 # 設定區域常數
end
puts MR_COUNT # 1
puts Foo::MR_COUNT # 2
從高到低:

備註:標註為方法的運算子可被覆寫。