Можно ли изменить размер массива? Как ты это делаешь?
Можно ли изменить размер массива во время выполнения на языке программирования KUKA KRL? Можно ли имитировать поведение List из C#?
2 ответа
Невозможно изменить размер массивов в KUKA KRL, а также невозможно динамически установить размер массива, например, с помощью переменной в объявлении, например:
DECL INT test_array[i]
Массивы должны быть заранее выделены. Если вы не уверены, сколько элементов вам нужно сохранить, то лучше заранее выделить массив с большим числом, которое, как вы уверены, не переполнится.
Вы не можете использовать поведение, подобное списку, с массивами, поэтому не можете добавлять или находить и т. Д. Его простое назначение явным индексам.
Вы МОЖЕТЕ создавать многомерные массивы, например:
DECL CHAR dog_names[5,32]
dog_names[1,] = "spot"
dog_names[2,] = "buddy"
DECL INT my_matrix[4,4]
my_matrix[4,2] = 6
Вы также можете создать массив структурных элементов, которые будут максимально приближены к объекту, как в KRL. Структуры STRUC в KRL работают аналогично структурам в других языках программирования.
ENUM PERMS admin, maint, user
STRUC SYSTEM_USER CHAR[32] first_name, last_name, REAL age, height, PERMS user_perm
DECL STRUC my_employees[10]
my_employees[1].first_name[] = "Sarah"
my_employees[1].last_name[] = "blahblah"
my_employees[1].age = 33
my_employees[1].height = 105
my_employees[1].user_perm = #admin
my_employees[2] = {first_name[] "Lester", user_perm = #maint}