有没有办法在各种mixin(如函数)中重用表达式?

时间:2013-09-17 20:59:07

标签: less

我有两个mixin使用相同的表达式来计算值@c,但该值适用于不同的属性。

.mixin1(@a, @b){
   @c: /* some complex expression with @a and @b */;
   width: @c;
}

.mixin2(@a, @b){
   @c: /* same expression like in mixin1 */;
   height: @c;
}

如何取出表达以在各种混音中重复使用?

1 个答案:

答案 0 :(得分:2)

您可以使用mixins来模拟函数:

.mixin1(@a, @b) {
    .my-complex-expression(@a, @b);
    width: @result;
}

.mixin2(@a, @b) {
    .my-complex-expression(@a, @b);
    height: @result;
}

.my-complex-expression(@a, @b) {
    @result: ((@a + @b) / 2);
}

(请注意,它可能是每个范围的唯一@result变量,因此在实际项目代码中,可以使用一些长的“唯一”名称作为“返回变量”。例如@<function-name>-result左右...)