Ballerina 芭蕾舞演员支持分类吗?

Ballerina 芭蕾舞演员支持分类吗?,ballerina,Ballerina,需要根据私有变量值对某些ballerina对象数组进行排序。我们可以对ballerina对象或基元类型数组进行排序吗?有什么功能可以做吗 目前没有内置的方法可以对数组进行排序。您可以根据需要实现排序功能 在github中找到一个可以重用的实现-。但这是整数的问题。我想是指包装。你可以把包裹拿出来试试。看起来Ballerina现在支持分类,但你必须做所有的繁重工作。即使对于简单的值类型也是如此。唉 无论如何,这里有一个“按字母顺序排序”的尝试,该数组包含json元素,每个元素都有一个name元素—

需要根据私有变量值对某些ballerina对象数组进行排序。我们可以对ballerina对象或基元类型数组进行排序吗?有什么功能可以做吗

目前没有内置的方法可以对数组进行排序。您可以根据需要实现排序功能


在github中找到一个可以重用的实现-。但这是整数的问题。我想是指包装。你可以把包裹拿出来试试。

看起来Ballerina现在支持分类,但你必须做所有的繁重工作。即使对于简单的值类型也是如此。唉

无论如何,这里有一个“按字母顺序排序”的尝试,该数组包含json元素,每个元素都有一个name元素——obvs还可以用于简单的int或string或worreva,并进行一些调整:

json items = [{ name: "aaa" }, { name: "aab" }];
items.sort(sortItems)

function sortItems(json a, json b) returns int {
    // extract character by character numeric representation of string
    int[] aname = a.name.toString().toCodePointInts();
    int[] bname = b.name.toString().toCodePointInts();

    // do character by character comparison
    int i = 0;
    while (i < aname.length() && i < bname.length()) {
        if (aname[i] < bname[i]) { return -1; }
        else if (aname[i] > bname[i]) { return 1; }
        i += 1;
    }
    // if all the characters in the shared length is the same
    // assume the shorter string should come first
    if (aname.length() < bname.length()) { return -1; }
    if (aname.length() > bname.length()) { return 1; }

    return 0;
}
json items=[{name:“aaa”},{name:“aab”}];
项目。排序(sortItems)
函数sortItems(json a,json b)返回int{
//逐字符提取字符串的数字表示形式
int[]aname=a.name.toString().toCodePointInts();
int[]bname=b.name.toString().toCodePointInts();
//逐字比较
int i=0;
而(ibname[i]){return 1;}
i+=1;
}
//如果共享长度中的所有字符都相同
//假设较短的字符串应位于第一位
if(aname.length()bname.length()){return 1;}
返回0;
}

很高兴被纠正,并有一个更简单的本地方式来做到这一点。(数组初始化可能错误,未测试该位,soz。)

int[]unsortedArray=[10,15,2,5,3,0];int[]结果=排序:合并排序(unsortedArray)