RX0102

领域: 执行

错误消息

%s 是一个固定集合(%s):移除会使它低于声明的数量

消息中的 %s 表示引擎抛出错误时填入的具体内容。

小故事

在 rush 里,你可以声明一个固定大小的集合,比如,固定三个,它就永远恰好持有三个。往里多倒,会被拒绝,那是上限。可是,反过来也一样:如果集合已经只剩三个,你还想从里面移除一个,它就会低于声明的数量,这也不允许。为什么?因为容量,是一条不变式,每一次变化,都要守住它,不管是往上,还是往下。引擎在写任何东西之前,就拒绝了。消息里告诉你,集合的名字,声明了几个,现在有几个。怎么改?如果你想改变一个成员,用 data.update,原地更新;如果你想要的,其实是最多几个,而不是恰好几个,就把集合声明成 bounded 加数字。记住:固定,就是不增不减。

文本来自 Rush 引擎的错误目录。