如何在 Ballerina 中迭代时从数组中删除元素

How to remove an element from an array while iterating in Ballerina

我有一个数组,应该从中删除一个元素。为此,我必须迭代数组,查找并删除匹配的元素。根据建议,数组只有 remove(int index) 方法。我怎样才能做到这一点?

public class Observable {

    private Observer[] observers = [];

    public function addObserver(Observer observer) {
        self.observers.push(observer);
    }

    public function removeObserver(Observer observer) {
        var iterator = self.observers.iterator();
        foreach var obs in iterator {
            if obs === observer {
                // What should be added here?
                self.observers.remove()
            }
        }
    }
}

另外,我获取迭代器的方式是否正确?

我认为在 Ballerina 中没有直接的方法可以做到这一点。我建议使用 lang.array:filter 方法并创建一个新数组,不包括您要删除的成员。

    int[] ar = [1, 2, 3, 4];
    int[] filtered = ar.filter(i => i != 2);