如何在Processing Java的void setup()中定义数组?
Processing中函数内初始化数组的正确方法
一维数组的正确初始化方式
你之前在setup()里直接用array = {"String"}赋值会报错,是因为{...}这种数组初始化语法只能在变量声明的同时使用。要在函数内给已声明的数组赋值,必须配合new 类型[]:
// 全局声明数组 String[] strArray; PImage[] imgArray; // 用于存储加载的图片 void setup() { size(600, 400); // 直接初始化一维数组 strArray = new String[]{"Hello", "Processing"}; // 结合loadImage初始化图片数组(符合loadImage需在setup内调用的要求) imgArray = new PImage[]{ loadImage("image1.jpg"), loadImage("image2.png") }; }
你提到的先指定长度再逐个赋值的方式也可行,但上面的写法更简洁高效。
二维数组的正确初始化方式
同理,二维数组在函数内赋值时,也需要配合new 类型[][]:
方式1:直接初始化元素
int[][] int2DArray; void setup() { // 直接初始化二维数组的所有元素 int2DArray = new int[][]{ {1, 3, 5}, {2, 4, 6}, {7, 8, 9} }; }
方式2:先指定长度再逐个赋值
如果需要动态定义二维数组的内容,可以先指定行数和列数,再逐个赋值:
int[][] int2DArray; void setup() { // 创建3行3列的二维数组 int2DArray = new int[3][3]; // 逐个赋值 int2DArray[0][0] = 1; int2DArray[0][1] = 3; int2DArray[0][2] = 5; int2DArray[1][0] = 2; // ... 其余元素以此类推 }
关键说明
{...}这种简化的初始化语法仅适用于变量声明与赋值同时进行的场景,比如:
int[] array = {1, 3, 5}; // 合法,声明时直接初始化
但当数组已经单独声明后,必须用new 类型[]/new 类型[][]的完整语法来完成赋值操作。
内容的提问来源于stack exchange,提问作者Scotterboi 9
相关产品推荐
相关产品推荐

