0

LESS1.3.1で再帰ループを実装しようとしています。最終的にミックスインが何をすることになっているのか(色と関係があります)は気にしないでください。ただし、再帰ループが失敗する理由は気にしないでください。

@iter: 4;

.loop(@index, @n) when (@index <= @n) { // throws "expected expression"?
    .foo@{index} { color: black; }
    .loop(@index + 1, @n);
}

.loop(@index, @n) when (@index > @n) {
    .terminated { color: white; }
}

.loop(1, @iter);

ミックスイン.loopは4回の反復を実行してから終了し、.terminated {}または何かを実行することになっています。

4

1 に答える 1

3

あなたはあなたの=と>を間違った方法で回しています

MixinGuardsのドキュメントが少ない

「ガードで使用できる比較演算子の完全なリストは次のとおりです。>>== = <<。さらに、キーワードtrueが唯一の真の値であり、これら2つのミックスインを同等にします。」

.loop(@index, @n) when (@index <= @n)

する必要があります

.loop(@index, @n) when (@index =< @n)
于 2012-12-04T19:01:18.257 に答える