我试图创建一个函数,该函数将根据给定的表达式输出数字列表。
有没有人知道如何通过函数传递表达式并在函数中对其进行求值?
这是我到目前为止所做的:
@function patt($expression, $b: 10) {
$result: ();
@for $i from 1 through 10 {
$result: append($result, unquote($expression));
}
@return $result;
}
使用示例:
$list: patt('$i * $b + 2');
不幸的是,这不起作用。据推测,该表达式被视为函数中的字符串。
答案 0 :(得分:2)
没有。 Sass没有 eval 功能。最接近的是使用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