是否可以更改数组大小?你怎么做呢?

Is it possible to change array size? How do you do it?

KUKA KRL 编程语言是否可以在运行时更改数组大小?是否可以从 C# 中模仿 List 的行为?

没有。这是不可能的:(

无法在 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

您还可以制作一个 STRUC 阵列,它们与您在 KRL 中获得的物体一样接近。 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}