【问题标题】:Check if a multi-dimensional array is empty (Vala)检查多维数组是否为空(Vala)
【发布时间】:2026-01-23 05:45:01
【问题描述】:

如果我有一个像string[,] empty = {{}}; 这样的数组并检查它的长度,我会得到一个int[]。如果我尝试apps.length.length,它似乎可以工作,直到我比较或打印它,然后我得到unsupported use of length field of multi-dimensional array。所以我不知道如何检查这个数组中是否有任何项目。

【问题讨论】:

    标签: vala


    【解决方案1】:

    vala 中的多维数组不是数组的数组。例如,这将是一个编译器错误:

    int[,] d = {{2, 4, 6, 8},
                {3, 5, 7, 9, 15},
                {1, 3, 5, 7}};
    

    编译器需要 4 个元素,但在第二个初始化程序中给出了 5 个元素。

    多维数组的长度方法将为您提供维度的大小:

    string[,] arr = {{}};
        
    int len1 = arr.length[0];
    int len2 = arr.length[1];
        
    stdout.printf(@"$len1, $len2\n");
    

    这会输出 1, 0,因为二维数组在第一维中扩展了一个元素,在第二维中扩展了零个元素。

    所以在上面的例子中,数组不是空的。它包含 1 行 0 列。您可以添加其他行,但这些行也必须有 0 列。

    【讨论】: