0

私はこのREBOLスクリプトを持っています:

REBOL [Title: "Employee list"]

emp-list: [
    "Amy" 1
    "Bob" 2
    "Carrie" 3
]

gui-layout: [ text "click to reveal number" ]

foreach [name id] emp-list [
    append gui-layout [
        box name [print id]
    ]
]

view layout gui-layout

不思議なことに、私には、クリックすると 3 を出力する 3 つのキャリーを持つウィンドウが作成されます。ここで何が間違っていますか?

4

1 に答える 1

2
>> probe gui-layout

[text "click to reveal number"
box name [print id]
box name [print id]
box name [print id]
]

Rebol は、FOREACH ループの後に 3を指し、それを評価せずに単純に行box name [print id]をに追加します。'gui-layout'name"Carrie"'id

これを回避するには、FOREACH ループを次のように置き換えます。

foreach [name id] emp-list [
    append gui-layout compose/deep [
        box (name) [print (id)]
    ]
]

そしてこのループの後:

>> probe gui-layout

[text "click to reveal number"
box
"Amy" [print 1]
box
"Bob" [print 2]
box
"Carrie" [print 3]
]
于 2012-10-05T04:22:36.400 に答える