此
.a {
@a: 1;
@b: 2;
@concat: @a;
@concat: ~"@{concat}@{b}";
margin: @concat;
}
给出错误。
语法错误:递归过多
但是,这个
.a {
@a: 1;
@b: 2;
@concat: e(`(function (a, b) {
var concat = "" + a;
concat += b;
return concat;
})(@{a}, @{b})`);
margin: @concat;
}
会起作用。
是否有一个技巧可以将字符串与LESS联系起来(没有concat1
,concat2
等变量)?
请注意,上面的代码不是简化主题,因为它将使用条件。代码必须生成
.optional-conditional-class1, .optional-conditional-class2, .optional-conditional-class3 {
....
}
以similar循环方式。这就是为什么我想用类列表形成连接字符串。
答案 0 :(得分:1)
是的,基本上,它是可能的,但不是在同一范围内。我最终得到了像这样的递归方法
.concat-test { .concat(@rest...) { ._concat(@i, @result, @rest...) { @var: extract(@rest, @i); .-() when (@i > length(@rest)) { @concat: @result; } .-() when (default()) { ._concat(@i+1, ~"@{result}@{var}", @rest); } .-(); } ._concat(1, "", @rest); } @a:a; @b:b; @c:c; .concat(@a, @b, @c, @b, @a); concat: @concat; }