我正在尝试在LESS 1.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 {}
或其他事情。
答案 0 :(得分:3)
你有你的=和&gt;错误的方式回合
Less Mixin Guards Documentation
“守卫中可用的比较运算符的完整列表是:&gt;&gt; = = =&lt;&lt;。此外,关键字true是唯一的真值,使这两个mixin等效:”
.loop(@index, @n) when (@index <= @n)
应该是
.loop(@index, @n) when (@index =< @n)