代码之家  ›  专栏  ›  技术社区  ›  gMale

蚂蚁条件-先是“如果”或“除非”

  •  7
  • gMale  · 技术社区  · 14 年前

    问题

    如果 ,哪个先评估?

    先吃什么,鸡肉还是鸡蛋?. . .

    <target name="prepare" if="chicken" unless="egg" >
        <echo>Dinner time. Chicken is served!</echo>
    </target>
    

    1 回复  |  直到 14 年前
        1
  •  10
  •   Brian Clements    14 年前

    这实际上不是一个求值问题,因为在调用目标之前,属性要么是设置的,要么不是设置的。

    编辑:我查看了1.8.1源代码,逻辑如下:

    if (!testIfAllows()) {
        project.log(this, "Skipped because property '" + project.replaceProperties(ifCondition)
                + "' not set.", Project.MSG_VERBOSE);
        return;
    }
    if (!testUnlessAllows()) {
        project.log(this, "Skipped because property '"
                + project.replaceProperties(unlessCondition) + "' set.", Project.MSG_VERBOSE);
        return;
    }
    

    所以 unless 无所谓除非 if