Recursion 递归混合

Recursion 递归混合,recursion,sass,Recursion,Sass,我想知道,如果允许in-sass编写递归mixin,例如: .size($val) when ($val < 200 ) { width: $val; height: $val; .size($val + 50px); } 在sass中,您可以创建递归函数,但您的示例是错误的 查看您的代码,我发现您处于无限循环中,因为@for迭代器中没有使用$var变量。您只能无限地从1迭代到5 这里的递归方法与其他语言相同,您必须使用参数再次调用函数,当此变量与0相同时(例如),

我想知道,如果允许in-sass编写递归mixin,例如:

.size($val) when ($val < 200 ) {
    width: $val;
    height: $val;
   .size($val + 50px);
}

在sass中,您可以创建递归函数,但您的示例是错误的

查看您的代码,我发现您处于无限循环中,因为@for迭代器中没有使用$var变量。您只能无限地从1迭代到5

这里的递归方法与其他语言相同,您必须使用参数再次调用函数,当此变量与0相同时(例如),返回一个值。。。它的值用于函数的最后一次调用,以设置新值。。。这也是第一步

以下是Sass递归函数的示例:

希望能有帮助


注意。

在sass中,您可以创建递归函数,但您的示例是错误的

查看您的代码,我发现您处于无限循环中,因为@for迭代器中没有使用$var变量。您只能无限地从1迭代到5

这里的递归方法与其他语言相同,您必须使用参数再次调用函数,当此变量与0相同时(例如),返回一个值。。。它的值用于函数的最后一次调用,以设置新值。。。这也是第一步

以下是Sass递归函数的示例:

希望能有帮助


注意。

与LESS示例不同,您的Sass mixin无法打破循环

@mixin test($val) {
  width: $val;
  height: $val;
  @if $val > 0 {
    @include test($val - 1);
  }
}

与您的LESS示例不同,您的Sass mixin没有打破循环的方法

@mixin test($val) {
  width: $val;
  height: $val;
  @if $val > 0 {
    @include test($val - 1);
  }
}

嗯,我认为这个函数需要一个@return to works fine。你觉得呢?这不是函数,它是一个混合
@return
是函数的构造。嗯,我认为这个函数需要@return才能正常工作。你觉得呢?这不是函数,它是一个混合
@return
是函数的构造。