首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UndefVarError:未定义的子类型

UndefVarError:未定义的子类型
EN

Stack Overflow用户
提问于 2020-05-25 23:11:44
回答 1查看 672关注 0票数 5

不清楚为什么在执行ERROR: LoadError: UndefVarError: subtypes not defined文件时获得.jl,而不是从REPL执行。

例如。

代码语言:javascript
复制
abstract type Asset end

abstract type Property <: Asset end
abstract type Investment <: Asset end
abstract type Cash <: Asset end
println(subtypes(Asset))

> 3-element Array{Any,1}:
 Cash
 Investment
 Property

...but在test.jl中放置了相同的代码,

代码语言:javascript
复制
julia test.jl

> ERROR: LoadError: UndefVarError: subtypes not defined
Stacktrace:
 [1] top-level scope at /.../test.jl:6
 [2] include(::Module, ::String) at ./Base.jl:377
 [3] exec_options(::Base.JLOptions) at ./client.jl:288
 [4] _start() at ./client.jl:484
in expression starting at /.../test.jl:6

Julia版本1.4.1,在OSX Catalina上执行(10.15.4)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-26 01:20:01

您需要在调用using InteractiveUtils之前添加subtypes。默认情况下,启动Julia时已经加载了该文件。

因此,您的文件应该如下所示:

代码语言:javascript
复制
shell> more t.jl

using InteractiveUtils
abstract type Asset end

abstract type Property <: Asset end
abstract type Investment <: Asset end
abstract type Cash <: Asset end
println(subtypes(Asset))


shell> julia t.jl
Any[Cash, Investment, Property]
票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62012171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档