Eiffel:如何 wipe_out 一个 ARRAY 对象而不重新创建它
Eiffel: How to wipe_out an ARRAY object without recreating it
尝试做类似
的事情
a: ARRAY[STRING]
create a.make_empty
a.put("foo foo fool")
a.wipe_out
我必须这样做吗?还是有另一种方法,因为 STRING 似乎没有 .has_default
create a.make_empty
a.put("foo foo fool")
create a.make_empty
最直接的方法是使用keep_head (n)
。它只保留前 n
个项目,因此,当 n = 0
时,所有项目都被一起删除:
a.keep_head (0)
另一种方法是使用创建程序,例如 make_empty
作为常规程序。它将把一个数组设置为新创建的数组的状态:
a.make_empty
但是,这种方法看起来有点奇怪。它可以改变数组的 lower
索引。所以,keep_head
更可取。
注意。 ARRAYED_LIST
是 ARRAY
的一个很好的替代品:它几乎具有 ARRAY
的所有功能,更灵活,具有其他功能,其中 wipe_out
。
尝试做类似
的事情a: ARRAY[STRING]
create a.make_empty
a.put("foo foo fool")
a.wipe_out
我必须这样做吗?还是有另一种方法,因为 STRING 似乎没有 .has_default
create a.make_empty
a.put("foo foo fool")
create a.make_empty
最直接的方法是使用keep_head (n)
。它只保留前 n
个项目,因此,当 n = 0
时,所有项目都被一起删除:
a.keep_head (0)
另一种方法是使用创建程序,例如 make_empty
作为常规程序。它将把一个数组设置为新创建的数组的状态:
a.make_empty
但是,这种方法看起来有点奇怪。它可以改变数组的 lower
索引。所以,keep_head
更可取。
注意。 ARRAYED_LIST
是 ARRAY
的一个很好的替代品:它几乎具有 ARRAY
的所有功能,更灵活,具有其他功能,其中 wipe_out
。