这段代码来自于Julia中有关有理数的实现部分:
看到
当我看到这段代码时,我按照以下方式解释它:
请帮我理解这个问题。
# Rational.jl
# ...
Rational{T<:Integer}(n::T, d::T) = Rational{T}(n,d)
Rational(n::Integer, d::Integer) = Rational(promote(n,d)...)
Rational(n::Integer) = Rational(n,one(n))
//(x::Rational, y::Integer) = x.num // (x.den*y) <--- HERE!
# ...
看到
//
函数是如何实现并与中缀符号一起使用的吗? 那这实际上是如何返回一个值的呢?当我看到这段代码时,我按照以下方式解释它:
- 使用Rational和Integer调用
//
函数。 - 但随后它会不带其他参数地进行递归调用。
//
如何返回一个值呢?请帮我理解这个问题。