Can Sass可以评估包含数学表达式的字符串吗?

问题描述:

我想创建一个函数,它会根据给定的表达式输出一个数字列表。Can Sass可以评估包含数学表达式的字符串吗?

有谁知道我可以通过一个函数传递一个表达式并让它在函数内进行计算吗?

这是我到目前为止有:

@function patt($expression, $b: 10) { 
    $result:(); 
    @for $i from 1 through 10 { 
     $result: append($result, unquote($expression)); 
    } 
    @return $result; 
} 

用法示例:

$list: patt('$i * $b + 2'); 

可惜,这是行不通的。推测表达式在函数内被视为一个字符串。

编号Sass没有评估函数。你可以得到最接近的是使用call函数。

@function my-expression($x, $y) { 
    @return $x * $y + 2; 
} 

@function patt($expression, $b: 10) { 
    $result:(); 
    @for $i from 1 through 10 { 
     $result: append($result, call($expression, $i, $b)); 
    } 
    @return $result; 
} 

$list: patt('my-expression'); // 12 22 32 42 52 62 72 82 92 102 
+0

哦,这太遗憾了。感谢您的建议。如果我在ruby中创建了一个自定义sass函数,它会起作用吗? – Mindthetic

+0

为什么不呢? – cimmanon

+0

我不知道问题是出现在SASS还是一般的Ruby函数中。我尝试构建一个自定义函数,但是我无法评估传入的字符串。 – Mindthetic