Julia 中如何实现有理数
How are rational numbers implemented in Julia
分子和分母是否存储为整数?具体来说,加减乘除的基本运算是如何实现的?
代码相当可读,简而言之:
struct Rational{T<:Integer} <: Real
表示分子和分母的类型相同,类型为<: Integer
。
如果您想知道某些操作是如何实现的,请在您的 REPL 中尝试 运行:
julia> @edit 1//2 + 3//4
要理解 Julia 中正在发生的事情,甚至更快更容易的方法就是使用 dump
命令,例如:
julia> dump(3//4)
Rational{Int64}
num: Int64 3
den: Int64 4
分子和分母是否存储为整数?具体来说,加减乘除的基本运算是如何实现的?
代码相当可读,简而言之:
struct Rational{T<:Integer} <: Real
表示分子和分母的类型相同,类型为<: Integer
。
如果您想知道某些操作是如何实现的,请在您的 REPL 中尝试 运行:
julia> @edit 1//2 + 3//4
要理解 Julia 中正在发生的事情,甚至更快更容易的方法就是使用 dump
命令,例如:
julia> dump(3//4)
Rational{Int64}
num: Int64 3
den: Int64 4