Ruby 4.1 リファレンスマニュアル

module function Kernel?.Complex

Complex(r, i = 0, exception: true) -> Complex | nil[permalink][rdoc][edit]
Complex(s, exception: true) -> Complex | nil

実部が r、虚部が i である Complex クラスのオブジェクトを生成します。

[PARAM] r:
生成する複素数の実部。
[PARAM] i:
生成する複素数の虚部。省略した場合は 0 です。
[PARAM] s:
生成する複素数を表す文字列。
[PARAM] exception:
false を指定すると、変換できなかった場合、例外を発生する代わりに nil を返します。
[EXCEPTION] ArgumentError:
変換できないオブジェクトを指定した場合に発生します。
p Complex(1)     # => (1+0i)
p Complex(1, 2)  # => (1+2i)
p Complex('1+1i')  # => (1+1i)
p Complex('1+1j')  # => (1+1i)
# Complex.polar(10, 10) と同一。
p Complex('10@10') # => (-8.390715290764524-5.440211108893697i)
Complex('_')     # ~> ArgumentError

r にも i にも複素数と解釈されるオブジェクトを指定した場合には、 Complex(a, b) を a+bi として計算した Complex オブジェクトを返します。

p Complex('1+1i', '2+3i')                        # => (-2+3i)
p Complex('1+1i') + Complex('2+3i') * Complex('i') # => (-2+3i)

[SEE_ALSO] Complex.rectComplex.rectangular

[注意] Complex.new、Complex.new! は 1.9 系では廃止されました。