你如何'或'在IronScheme中枚举条目,例如:
(import
(rnrs)
(ironscheme clr))
(clr-using System.Reflection)
(define public-class-attributes
(bitwise-ior
(clr-static-field-get
TypeAttributes Public)
(clr-static-field-get
TypeAttributes Class)))
(display public-class-attributes)
这会导致错误,我在文档中找不到替代方法。
答案 0 :(得分:2)
我不确定您的用例是什么,但正如评论中所提到的,当使用clr-call
时,符号列表可用于OR< d enum。示例here。
在内部,编译器将通过调用Helpers.SymbolToEnum<T>()
来包装列表。
注意:案例被忽略。
以小例子说明:
C#代码:
[Flags]
enum Foo
{
Bar = 1,
Baz = 2
}
class AType
{
static void Kazaam(Foo foo) { ... }
}
计划代码:
; same as Bar | Baz
(clr-static-call AType Kazaam '(Bar Baz))
; single value
(clr-static-call AType Kazaam 'Baz)
; same thing
(clr-static-call AType Kazaam '(Baz))
; no value (iow zero)
(clr-static-call AType Kazaam '())
如果这些只是简单的标志,列表就足够了,否则你可以在enum
中将enum-set
重新定义为允许许多集合操作的enum-set->list
。最后,您只需使用chmod +x slamdata_unix_2_1_8.sh
将列表作为参数传递,如上所示。