刚开始使用Red,我很难理解如何评估块。以下内容给出了*** Script Error: panel has no value
错误:
Red [
needs: 'view
]
my-panel: [
panel 300x300 [
text "World"
]
]
view [
title "Hello"
do my-panel
]
如果我内联my-panel
块的内容,但是找不到分割代码然后将其包含在视图函数块中的方法,我可以使它工作。任何人都可以给我一个真正的快速指针,指出上面的代码有什么问题吗?
答案 0 :(得分:4)
红色语言包含多个DSL,view
调用VID之后您使用的是DSL。 do
单词在不同的上下文中有不同的含义。在红色常规语言中,它评估一个红色代码块,在VID中,它是一个关键字,允许将红色代码嵌入到VID中。到目前为止一切都那么好,但是你没有将一段红色代码传递给do
,而是一块VID代码。
我想你要实现的是动态插入my-panel
块。这可以通过不同的方式实现,最简单的方法是使用compose
函数:
Red [
needs: 'view
]
my-panel: [
panel 300x300 [
text "World"
]
]
view compose [
title "Hello"
(my-panel)
]
我们在Gitter上有几个chat rooms,以防您需要更多互动帮助。
干杯!