2.3.10 定义具有可选变量的函数在定义复杂的函数时,常常需要用一些可选变量,当没有明确 指出这些变量时,就需要用系统设定的默认值. Mathematica 提供 了两种定义具有可选变量函数的方法,可以根据需要选用. 第一种方法就是利用变量的位置,忽略这些变量后就用默认值来代替. 几乎所有用这种方法定义的系统函数都可以忽略相应变量.例如函数 Flatten[list, n] 中的第二个变量忽略时用默认值 Infinity 来代替. 位置变量可以用模式 _: 来实现. 定义一个有位置变量的函数 定义第二个变量为可选的函数,当该函数被忽略时,其默认值为 Infinity 具有两个可选变量的函数 Mathematica 忽略变量时从最后面开始,故这里 m 是 n1 的值, 2 是 n2 的默认值
Out[3]= |  |
Mathematica 中定义有可选变量函数的第二种方法是明确给出可选 变量的名称,然后可用变换规则对其赋值,对像Plot等可选变量很多的函数, 这种方法特别方便. 一个函数中可选变量的值可以通过将适当的变换规则放在变量的后面 给出. 例如,可用 PlotJoined->True 来指定 ListPlot[list, PlotJoined->True] 中可选变量 PlotJoined 的值. 当定义了具有可选变量的函数 后,习惯上是将这些变量的默认值以一 些变量规则集合的形式用 Options[f] 保存起来. 命名的变量 在函数 fn 中定义了opt1, opt2 两个命名的可选变量
Out[4]= |  |
给出可选变量 opt1 的值
Out[5]= |  |
先用了规则 opt1->3,所以在 Options[fn] 中的默认规则没有使用
Out[6]= |  |
有零个或多个命名可选变量的函数 fn 没有指定可选变量,因此用了opt2 的默认规则
Out[8]= |  |
当明确给出了opt2 的规则时,它将先于 Options[fn] 中的默认规则而使用
Out[9]= |  |
|