如何对未定义的向量列表项进行分类?
How to classify an undefined vector list item?
我知道未定义的 vector3 = default(vector3),但是不存在的向量列表项怎么办?例如:
List<Vector3> stuff = new List<Vector3>();
for(int i=1; i<10; i++){
stuff.add(new Vector3(0 + i, 0, 0));
}
在这种情况下,stuff[15] 应该考虑什么?我知道它是未定义的,但可以说您不知道它是否已定义。你怎么知道它是不是?就像,如果 stuff[15] 是未定义的打印("stuff[15] is undefined")并中断。
假设您询问您的代码是否能够访问 stuff[15]
,不。
这是因为您只向其中添加了 10 个元素,每个元素都是向量类型。
List<Vector3> stuff = new List<Vector3>();
for (int i = 0; i < 10; i++) {
stuff.add(new Vector3(0 + i, 0, 0));
}
此代码将使用给定的位置添加一个新的 Vector 10 次,其中第一个参数是 0 + i。由于只有 10 个元素,stuff[15] 将不会被访问,并且会抛出 ArrayOutOfBoundsException。
要安全地检查数组是否可以包含第 15 个元素,请使用 if 语句
if (stuff.Length > 15) {
stuff[15]; // will only be called if an element exists
}
我找到答案的部分原因是 Frontear 的回答。
List<Vector3> stuff = new List<Vector3>();
for(int i=1; i<10; i++){
stuff.add(new Vector3(0 + i, 0, 0));
}
if(15 > stuff.Count ){
print("stuff[15] is undefined")
break;
}
因此,所有未定义的列表项显然都超出了已定义列表项的数量范围,因此,要确定某个列表项是否未定义,只需将其数量与已定义列表项的数量进行比较即可。
我想这是一个非常简单的答案,我只是认为有一个词可以将 defined/undefined 列表项设置为等于以获得一个布尔值,表示它是否已定义;像 stuff[15]==undefined。显然不是...
我知道未定义的 vector3 = default(vector3),但是不存在的向量列表项怎么办?例如:
List<Vector3> stuff = new List<Vector3>();
for(int i=1; i<10; i++){
stuff.add(new Vector3(0 + i, 0, 0));
}
在这种情况下,stuff[15] 应该考虑什么?我知道它是未定义的,但可以说您不知道它是否已定义。你怎么知道它是不是?就像,如果 stuff[15] 是未定义的打印("stuff[15] is undefined")并中断。
假设您询问您的代码是否能够访问 stuff[15]
,不。
这是因为您只向其中添加了 10 个元素,每个元素都是向量类型。
List<Vector3> stuff = new List<Vector3>();
for (int i = 0; i < 10; i++) {
stuff.add(new Vector3(0 + i, 0, 0));
}
此代码将使用给定的位置添加一个新的 Vector 10 次,其中第一个参数是 0 + i。由于只有 10 个元素,stuff[15] 将不会被访问,并且会抛出 ArrayOutOfBoundsException。
要安全地检查数组是否可以包含第 15 个元素,请使用 if 语句
if (stuff.Length > 15) {
stuff[15]; // will only be called if an element exists
}
我找到答案的部分原因是 Frontear 的回答。
List<Vector3> stuff = new List<Vector3>();
for(int i=1; i<10; i++){
stuff.add(new Vector3(0 + i, 0, 0));
}
if(15 > stuff.Count ){
print("stuff[15] is undefined")
break;
}
因此,所有未定义的列表项显然都超出了已定义列表项的数量范围,因此,要确定某个列表项是否未定义,只需将其数量与已定义列表项的数量进行比较即可。
我想这是一个非常简单的答案,我只是认为有一个词可以将 defined/undefined 列表项设置为等于以获得一个布尔值,表示它是否已定义;像 stuff[15]==undefined。显然不是...