我正在努力学习Javis.jl与冥王星笔记本。在做tutorial时,我尝试将 Video
分开对象和Object
在不同的冥王星 block 中,如图所示:
md"""
Some md here
"""
begin
myvideo = Video(500, 500)
Background(1:70, ground)
end
md"""
Some markdown here. Separate block.
"""
begin
red_ball = Object(....)
blue_ball = Object(....)
end
这向我显示了一个错误
A `Video` must be defined before an `Object`
var"#Object#10"(::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}, ::Type{Javis.Object}, ::Symbol, ::Function, ::Luxor.Point)@Object.jl:77
...
如果我输入myvideo
,则不会发生此错误和 Background
同样begin...end
block 为 red_ball
和blue_ball
.
经过源代码检查,调用Video()
在环境中设置一个全局变量,因此我不清楚这是如何发生的。
对于可能出现的问题有什么想法吗?谢谢。
最佳答案
我不是 100% 确定,但我认为这可能是因为 Pluto
创建一个不同的Module
对于每个单元格,因此对象可能无法看到正确的 CURRENT_VIDEO
来自其他细胞的常数。
如果我可以问你,为什么要使用不同的单元格?
关于julia - 将 Javis.jl `Video` 和 `Object` 分离为 Pluto 中的两个不同 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70768702/