参数列表

2018-02-24 15:11 更新

当混合宏需要处理数量不明的参数时,通常使用 arglist 而不是列表。可以认为 arglist 是 Sass 中隐藏而未被记录的第八个数据类型,通常当需要任意数量参数的时候,被隐式使用到参数中含有 ... 标志的混合宏和函数中。

@mixin shadows($shadows...) {
  // type-of($shadows) == 'arglist'
  // ...
}

现在,当要建立一个接收多个参数(默认为 3 或者更多)的混合宏时,在将它们合并为列表或者 map 之前,要反复考量这样做是否比一个个的单独存在更易于使用。

Sass 的混合宏和函数声明非常智能,你只需给函数/混合宏一个列表或 map,它会自动解析为一系列的参数。

@mixin dummy($a, $b, $c) {
  // ...
}

// Yep
@include dummy(true, 42, 'kittens');

// Yep but nope
$params: (true, 42, 'kittens');
$value: dummy(nth($params, 1), nth($params, 2), nth($params, 3));

// Yep
$params: (true, 42, 'kittens');
@include dummy($params...);

// Yep
$params: (
  'c': 'kittens',
  'a': true,
  'b': 42,
);
@include dummy($params...);

扩展阅读

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号