问题描述
是否可以在 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 中的 STRUC 与其他编程语言中的结构类似。
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}