因为sass的做者是rubyer,所以它的类型与JS有点不同,但同样能够类推。css
@charset "utf-8";//必须设置了这个才能编译有中文的注释 $gray: #333;//颜色 $number: 12;//数字 $boolean: true; $array:(); $string:"string"; $string2: 'string'; $null:null; $map: ( aa:1, bb:2 ); @mixin box-shadow($shadows) { -moz-box-shadow: $shadows; -webkit-box-shadow: $shadows; box-shadow: $shadows; } .aaa { content: type-of($gray); } .bbb { content: type-of($number); } .ccc{ content: type-of($boolean); } .ddd { content: type-of($array); } .eee { content: type-of($string); } .fff { content: type-of($string2); } .ggg { content: type-of($null); } .hhh { content: type-of(type-of); } .iii { content: type-of($map); } .kkk { content: type-of(box-shadow); } //-------------------------------------- .aaa { content: color; } .bbb { content: number; } .ccc { content: bool; } .ddd { content: list; } .eee { content: string; } .fff { content: string; } .ggg { content: null; } .hhh { content: string; } .iii { content: map; } .kkk { content: string; }
能够看到sass的类型有null, string, bool, number, list, map, color这几种类型,若是直接拿内置函数的名字或@mixin函数放进type-of里,都是获得字符串。web
但type-of不能断定@function函数与@mixin函数,这时就须要用到function_exists, mixin_exists这两个方法了,但我以为它们的名字起得很差,不是中杠线连在一块儿!sass
@charset "utf-8";//必须设置了这个才能编译有中文的注释 @mixin box-shadow($shadows) { -moz-box-shadow: $shadows; -webkit-box-shadow: $shadows; box-shadow: $shadows; } .testvar1{ content: function_exists("type-of"); } .testvar2{ content: mixin_exists("box-shadow"); } //-------------------------------------- .testvar1 { content: true; } .testvar2 { content: true; }
有了类型断定,咱们就能够玩参数泛型化了。ruby