章节导航Click
   button1.png button1.png


函数选项与默认选值的一个问题

@2015-9-3

默认选值


函数选项与可选值的一个问题_1.gif

函数选项与可选值的一个问题_2.png


函数选项与可选值的一个问题_3.gif

函数选项与可选值的一个问题_4.png


函数选项与可选值的一个问题_5.png

函数选项与可选值的一个问题_6.png

如果f2里的第一个参数想忽略


函数选项与可选值的一个问题_7.gif

函数选项与可选值的一个问题_8.png


函数选项与可选值的一个问题_9.gif

函数选项与可选值的一个问题_10.png

函数选项与可选值的一个问题_11.png

函数选项与可选值的一个问题_12.png

这个结果中我们看到,如果只输入一个参数,f3的写法x参数会被忽略,当你想输入一个参数时x有值时请不要用三个_[BlankNullSequence]

这种情况下x自然是没有值的,如果加个默认值呢?


函数选项与可选值的一个问题_13.gif

函数选项与可选值的一个问题_14.png


函数选项与可选值的一个问题_15.png

函数选项与可选值的一个问题_16.png

你想干啥,又想忽略我[不输入x的参数],又想忽略我时[默认值x=0]有值?对,换一种说法,只输入一个参数时,这个参数传值给y,我靠你就不能把y写在前面吗?不能,因为任性。
当然原因是因为这个问题在一个参数的定义时也有其意义,后面混合选项时会涉及到,如果没有输入参数,第一个选项会作为一个参数,这就会导致一些问题。


函数选项与可选值的一个问题_17.gif

函数选项与可选值的一个问题_18.png

函数选项与可选值的一个问题_19.png

函数选项与可选值的一个问题_20.png


函数选项与可选值的一个问题_21.gif

函数选项与可选值的一个问题_22.png

函数选项与可选值的一个问题_23.png

函数选项与可选值的一个问题_24.png

选项


函数选项与可选值的一个问题_25.gif

函数选项与可选值的一个问题_26.png

函数选项与可选值的一个问题_27.png


函数选项与可选值的一个问题_28.gif

函数选项与可选值的一个问题_29.png

函数选项与可选值的一个问题_30.png

上面的方式又是把x的默认值给忽略了,那么在函数体里要对x进行操作时,首先要判断它是否有值,或是否是一个结构才能进行后续的操作

选项与默认值

总结一下,我们
要定义一个函数,有一个输入参数,至少有一个输入选项。
输入时参数可以忽略,但是不能把选项当成输入参数,不输入参数时,那个位置对应的变量也是有可选默认值的。

Solution 1,给输入参数加个类型判断

因为选项的Head是Rule,那么加个参数类型在许多时候就有用


函数选项与可选值的一个问题_31.gif

函数选项与可选值的一个问题_32.png

函数选项与可选值的一个问题_33.png

函数选项与可选值的一个问题_34.png

那么,如果我们就是要x的参数是一个Rule的参数呢?......


函数选项与可选值的一个问题_35.gif

函数选项与可选值的一个问题_36.png

函数选项与可选值的一个问题_37.png

总结

因为有Solution1了,我就先去完善有个程序包包了,就先不想其他Solution,总结也就瞎写写先。