Можно ли изменить размер массива? Как ты это делаешь?

Можно ли изменить размер массива во время выполнения на языке программирования 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}

Нет, это невозможно :(

Другие вопросы по тегам