update: 是另外的问题导致,直接访问 arr.length
正常
=========忽略以下=============
如下简略的伪代码,定义了一个动态数组 arr
,fn
函数用于遍历数组。
当 arr 中有元素的情况下,遍历一切正常。那么问题来了,在 arr
并没有被 push 任何元素的情况下,调用 arr.length
貌似就跪了。那么这种场景下怎么判断数组长度以避免执行异常呢?(我想到一个方法是另外定义一个 bool,用于标记数组中有没有元素,但这有点 stupid )
contract C {
address[] arr;
function fn () public {
for (uint i=0; i<arr.length; i++)
//do something
}
}