这是一个惊喜:
$ 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说了一件事,但是它说的话不能在==
表达式中使用。
答案 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代码中使用此标识符。