sass sum或rest取决于函数中的参数

时间:2018-04-11 06:25:11

标签: variables sass

我在我的sass代码中重构函数,因此在尝试尽可能多地遵循函数式编程规则时,它们的使用范围更广。如何根据参数分配操作类型,这样我就不必在else语句中重复代码了?

实际上我想要实现的是在列表中选择下一个或上一个索引

 app.get("/myprojects/:id/cost", function(req,res){
    Project.findById(req.params.id).populate("labours materials tools plants others").exec(function(err, foundProject){
      if (err) {
        console.log(err);
      } else {
        var plantRateSum = foundProject.plants.reduce(function(sum, plant){
          return sum + plant.plantrate;
        }, 0); 
        res.render("cost", {project: foundProject, plantRateSum:plantRateSum});   
      }
    });
  });

给出结果

@function mathOperation($number, $type) {
    @return $number #{if($type == sum, '+', '-')} 1;
}

@debug mathOperation(5, sum);
@debug type-of(mathOperation(5, sum));

而不是实际的总和和类型编号。

甚至尝试直接传递实际的运算符,例如+或 - 作为参数,只是将其用作变量,没有运气。

1 个答案:

答案 0 :(得分:0)

您在函数中创建一个sass列表,而不是进行数学计算。使用 inspect(),您可以从ist创建一个字符串,因此您基本上搜索的是一个评估字符串的方法。 Sass不提供此功能,您必须编写一个返回数字

的数字方程式
@function mathOperation($number, $type) {
    @return $number + if($type == sum, 1, -1);
}