Доп. комментарий по массивам и точкам к туторе "KeyHeart"
Привет!
Сразу скажу, что мое знакомство с vex-ом было тяжким, продолжительным, и до сих пор какую-то часть из того, что я там время от времени пишу - я сам нихрена не понимаю, или не могу объяснить простыми словами. Много приходится копаться в хелпе, экспериментировать и пробовать. И если знаете способы сделать то или иное проще или нашли у меня ошибку, обязательно пишите:)
Финальный вариант врангла из видоса:
string text = chs('Text');
string letters[] = split(text);
int len = len(letters);
i@len = len;
int index = int(fit01(rand(@ptnum%len), 0, len));
s@letters = letters[index];
В первой строке создается
текстовый канал, и все, что вводится в этот канал, записывается в строковую переменную text.
Во второй строке объявляется массив, как и в туториале, со всеми значениями, поступающими в переменную text. Вместо функции
array() используется функция
split(). Она принимает строку и по разделителю разбивает ее на отдельные значения. Если разделитель (separators) не указан, а подается только строка, то она по умолчанию разбивается через пробелы.
В третьей строке создается переменная
len, которая измеряет длину массива - сколько в массиве всего значений.
Сразу и четвертая строка - там создается одноименный атрибут, в который записывается значение переменной len. Это нужно для отслеживания в geometry spreedsheet и для обращения к этому атрибуту в других нодах - переменная со своими значениями существует только в пределах кода.