在Rebol 2中,您可以检查空位集和空位集吗?
>> empty? make bitset! #{00}
== true在Rebol 3(构建21-2月-2011/0:44:24)中,情况并非如此。
>> empty? make bitset! #{00}
== false窃听器还是新行为?不管怎样,我还能怎么做这个测试?不同大小的空位集在R2或R3中都不相等:
>> (make bitset! #{00}) == (make bitset! #{0000})
== false发布于 2012-11-20 12:54:26
新行为:大于0位的位集不是空的;即使没有位集,它仍然包含已清除的位。
在R3中,您可以使用空位集对给定的位集进行or,以确定第一个位集是否为空--即:它没有位集--以及:
>> empty? (make bitset! #{00}) or (make bitset! #{})
== true
>> empty? (make bitset! #{0000}) or (make bitset! #{})
== true作为一种方便的快捷方式,您还可以只使用一个空的or,启用以下定义:
bitset-clear?: func [bitset [bitset!]] [empty? bitset or #{}]同样,用你的例子:
>> bitset-clear? make bitset! #{00}
== true
>> bitset-clear? make bitset! #{0000}
== true发布于 2012-11-19 14:03:35
这可能是R2和R3之间构建位集的不同之一。这在R3 (A111)中仍然有效:
>> eb: charset []
== make bitset! #{}
>> empty? eb
== truehttps://stackoverflow.com/questions/13453209
复制相似问题