2017-07-19 1 views
2

Je commence simplement avec Red et j'ai de la difficulté à comprendre comment évaluer les blocs. Ce qui suit me donne une erreur *** Script Error: panel has no value:Comprendre l'évaluation des blocs rouges

Red [ 
    needs: 'view 
] 

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

view [ 
    title "Hello" 

    do my-panel 
] 

je peux le faire fonctionner si je en ligne le contenu du bloc my-panel, mais ne peut pas trouver un moyen de diviser le code et ensuite l'inclure à l'intérieur du bloc de la fonction de vue . Quelqu'un pourrait-il me donner un vrai pointeur rapide sur ce qui ne va pas avec le code ci-dessus?

Répondre

4

Le langage rouge contient plusieurs DSL, celui que vous utilisez ci-dessus après view appel est VID. Le mot do a différentes significations dans différents contextes. En langage standard Red, il évalue un bloc de code rouge, dans VID, c'est un mot-clé, qui permet d'intégrer du code rouge dans VID. Jusqu'ici tout va bien, mais vous ne passez pas un bloc de code rouge à do, mais un bloc de code VID.

Je suppose que vous voulez réaliser est d'insérer le bloc my-panel dynamiquement. Cela peut être réalisé en utilisant des moyens différents, le plus simple serait d'utiliser la fonction compose:

Red [ 
    needs: 'view 
] 

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

view compose [ 
    title "Hello" 

    (my-panel) 
] 

Nous avons plusieurs chat rooms sur Gitter au cas où vous avez besoin d'une aide plus interactive.

À la votre!