我有一个像("File1" "File2" "File3")
我想把它变成一个收音机菜单项 像这样
(menu :text "Lists" :items [(radio-menu-item :text "File 1")(radio-menu-item :text "File 2")(radio-menu-item :text "File 3")])
我试过像这样的循环
(def Radios (for [ item '("File1" "File2" "File3")] (radio-menu-item :text item)))
但这不起作用。
如何实现这一目标?
答案 0 :(得分:1)
你对for
表达式的使用看起来是正确的,如果我稍微更改表达式,它会返回它将运行而不是运行它的列表,我们可以验证这一点:
core> (list 'menu :text "Lists" :items
(vec (for [ item '("File1" "File2" "File3")]
(list 'radio-menu-item :text item))))
(menu :text "Lists" :items [(radio-menu-item :text "File1")
(radio-menu-item :text "File2")
(radio-menu-item :text "File3")])
所以完成的表达式变为:
core> (menu :text "Lists" :items
(vec (for [ item '("File1" "File2" "File3")]
(radio-menu-item :text item))))
如果menu
和radio-menu-item
解析为正确的值。