复数文字
Complex number literal
复数可以写成这样:
3 + 2i # => (3+2i)
这在句法上与接收整数 3
接收带有参数 +
的方法 +
的情况有何区别(它本身作为复数的文字 (0+2i)
)?
简短回答:不是。它的工作方式是整数的+
方法接收虚数单位和returns一个Complex
。所以就文字而言,你有通常的整数和浮点数文字以及虚数文字(例如 2i
),通过组合它们你可以构造复杂的值。
我猜文档有误导性,看起来是字面意思的实际上是方法调用。我做了一个实验来证实这一点:
class Integer
alias old_plus +
def +(*args)
puts 'called with complex' if args.first.class == Complex
old_plus(*args)
end
end
8+3i
# called with complex
# => (8+3i)
(9+2i)
# called with complex
# => (9+2i)
复数可以写成这样:
3 + 2i # => (3+2i)
这在句法上与接收整数 3
接收带有参数 +
的方法 +
的情况有何区别(它本身作为复数的文字 (0+2i)
)?
简短回答:不是。它的工作方式是整数的+
方法接收虚数单位和returns一个Complex
。所以就文字而言,你有通常的整数和浮点数文字以及虚数文字(例如 2i
),通过组合它们你可以构造复杂的值。
我猜文档有误导性,看起来是字面意思的实际上是方法调用。我做了一个实验来证实这一点:
class Integer
alias old_plus +
def +(*args)
puts 'called with complex' if args.first.class == Complex
old_plus(*args)
end
end
8+3i
# called with complex
# => (8+3i)
(9+2i)
# called with complex
# => (9+2i)