Как классифицировать неопределенный элемент списка векторов? - PullRequest
0 голосов
/ 08 ноября 2018

Я понимаю, что неопределенный вектор3 = по умолчанию (вектор3), но как насчет элемента списка векторов, который не существует?Например:

List<Vector3> stuff = new List<Vector3>();
for(int i=1; i<10; i++){
stuff.add(new Vector3(0 + i, 0, 0));
}

В этом случае, что будет рассматриваться как материал [15]?Я знаю, что он не определен, но допустим, что вы не знали, определен он или нет.Как бы вы узнали, если это было?Например, если stuff [15] не определено, print («stuff [15] не определено») и break.

Ответы [ 2 ]

0 голосов
/ 09 ноября 2018

Я понял ответ отчасти благодаря ответу 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;
}

Итак, все неопределенные элементы списка явно находятся вне диапазона количества определенных элементов списка и, следовательно, чтобы выяснить, является ли элемент списка неопределенным, просто сравните его номер с числом определенныхэлементы списка.

Полагаю, это был очень простой ответ, я просто подумал, что есть слово, в котором вы можете установить определенный / неопределенный элемент списка равным, чтобы получить логическое значение, представляющее, было ли оно определено или нет;как вещи [15] == не определено.Видимо, нет ...

0 голосов
/ 08 ноября 2018

Если вы спрашиваете, сможет ли ваш код получить доступ к stuff[15], нет.

Причина этого в том, что вы добавляете в него только 10 элементов, каждый из которых имеет тип vector.

List<Vector3> stuff = new List<Vector3>();
for (int i = 0; i < 10; i++) {
    stuff.add(new Vector3(0 + i, 0, 0));
}

Этот код добавит новый Вектор 10 раз с заданными позициями, где первый параметр равен 0 + i. Поскольку существует всего 10 элементов, к вещи [15] доступ не будет, и будет выдано исключение ArrayOutOfBoundsException.

Чтобы безопасно проверить, может ли массив содержать 15-й элемент, используйте оператор if

if (stuff.Length > 15) {
    stuff[15]; // will only be called if an element exists
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...