了解红块评估

Understanding Red Block Evaluation

刚开始使用 Red,我很难理解如何评估块。以下给我一个 *** Script Error: panel has no value 错误:

Red [ 
    needs: 'view
]

my-panel: [
    panel 300x300 [
        text "World"
    ]
]

view [
    title "Hello"

    do my-panel
]

如果我内联 my-panel 块的内容,我可以让它工作,但找不到一种方法来拆分代码,然后将它包含在视图函数的块中。谁能给我一个真正快速的指针,指出上面的代码有什么问题?

红色语言包含多个 DSL,您在 view 调用后使用的是 VIDdo 这个词在不同的上下文中有不同的含义。在 Red 常规语言中,它评估一个 Red Code 块,在 VID 中,它是一个关键字,允许将 Red 代码嵌入到 VID 中。到目前为止一切顺利,但您没有将红色代码块传递给 do,而是传递了 VID 代码块。

我猜你想要实现的是动态插入 my-panel 块。这可以使用不同的方法来实现,最简单的方法是使用 compose 函数:

Red [ 
    needs: 'view
]

my-panel: [
    panel 300x300 [
        text "World"
    ]
]

view compose [
    title "Hello"

    (my-panel)
]

如果您需要更具交互性的帮助,我们在 Gitter 上有几个 chat rooms

干杯!