方法(Functions):
函数:Stylus强大之处就在于其内置的语言函数定义。定义与混入(mixins)一致却可以返回值
返回值:
很简单的例子,两数值相加的方法
我们可以在特定条件下使用该方法,如在属性值中
渲染
默认参数:
可选参数往往有个默认的给定表达。在Stylus中,我们甚至可以超越默认参数
例如
注意:因为参数默认是赋值,我们可以使用函数调用作为默认值
函数体:
我们可以把简单的add()方法更进一步。通过内置unit()把单位都变成px, 因为赋值在每个参数上,因此,我们可以无视单位换算
多个返回值:
Stylus的函数可以返回多个值,就像你给变量赋多个值一样
例如,下面就是一个有效赋值
类似的,我们可以在函数中返回多个值
有个小小的例外就是返回值是标识符。例如下面看上去像一个属性赋值给Stylus(因为没有操作符)
为避免歧义,我们可以使用括号,或是return关键字
条件:
比方说,我们想要创建一个名为stringish()的函数,用来决定参数是否是字符串。我们检查val是否是字符串或缩进(类似字符)
如下,使用yes和no代替true和false
使用
注意:yes和no并不是布尔值。本例中,它们只是简单的未定义标识符
另外一个例子
使用
别名:
给函数起个别名,和简单,直接等于就可以了。例如上面的add()弄个别名plus(),
如下
变量函数:
我们可以把函数当作变量传递到新的函数中。例如,invoke()接受函数作为参数,因此,我们可以传递add()以及sub()
结果
参数:
arguments是所有函数体都有的局部变量,包含传递的所有参数
例如
哈希示例:
下面,我们定义get(hash, key)方法,用来返回key值或null. 我们遍历每个键值对,如果键值匹配,返回对应的值
下面例子可以证明,语言函数模样的Stylus表达式具有更大的灵活性