如何在Julia中指定非理性数字的类型?

时间:2019-05-22 05:55:19

标签: generics julia

这是一个惊喜:

$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.1.1 (2019-05-16)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

julia> typeof((Base.MathConstants).e)
Irrational{:ℯ}

julia> typeof((Base.MathConstants).e) == Irrational{:e}
false

如何在Julia 1.1.1中编写类型Irrational{:e}

此表达式在Julia 0.5中返回true,但这仅是因为e是顶级标识符。从0.5到现在,语言有所改变。我发现e已移至Base.MathConstants,但是我还没有弄清楚如何写其类型。 REPL说了一件事,但是它说的话不能在==表达式中使用。

1 个答案:

答案 0 :(得分:3)

请注意,来自

的回复
typeof((Base.MathConstants).e)

Irrational{:ℯ}

带有“斜体” e。如果您将响应复制粘贴到表达式中

typeof((Base.MathConstants).e) == Irrational{:ℯ}

并对其进行评估,您将获得价值

true

这是原因。在旧版本的Julia中,常数e用于著名的数字2.718281828 ...但显然,人们喜欢使用e作为例外,因此e被移至Base.MathConstants

但是,Base中引入了一个新常数。这是character U+212F,是“脚本小字母e”。

您可以直接在Julia代码中使用此标识符。