Dlang:foreach循环或“每个”模板

时间:2018-09-10 01:58:12

标签: d

说我有一个可迭代的对象数组,我想遍历每个对象并执行一些任务。我看到这样做的两种方法,下面列出。我已经使用MonoTime进行了计时,就执行时间而言,它们似乎具有可比性。

建议在D中使用以下哪个选项?推荐的选项在什么情况下可能没有用?

    int[] animals = [animal1, animal2, animal3];

    // OPTION 1

    foreach(Animal a; animals) {
        a.feed();
        a.giveWater();
    }

    // OPTION 2
    animals.each!( (a) {a.feed();
                        a.giveWater();
                        });

2 个答案:

答案 0 :(得分:2)

/etc/php/7.2/mods-available/<module>.ini是默认设置。

我要使用foreach的一件事是对集合(使用std.algorithm)进行大量转换,然后遍历结果。仅出于可读性考虑。考虑是否要遍历以下内容:

each

将其放入foreach会很尴尬。坚持使用students .filter!(s => s.year == 1) .map!(s => s.major) .filter!(m => m !is null) .map!(x => faculty.byProgram(x)) .joiner .array .sort .uniq 是很自然的。

答案 1 :(得分:0)

我正在使用each直接调用一个函数。

例如:

[1, 2, 3].each!writeln();