如果我有一个功能:
Foo[x_] := If[x==2, Print@"Two", Print@"No"]
然后,如果我写下以下内容:
Foo[oops]; Foo[5]
其中oops
是全局变量的拼写错误的名称,结果是对Foo[oops]
的调用只是通过而不是给出错误。我知道为什么会这样 - 因为它创建了一个符号表达式,因为它没有被评估,所以没有做任何事情 - 但它对于程序编程来说非常尴尬。是否有任何方法可以指定必须完全评估函数或表达式并给出错误或返回适当的值(如果不是?)
答案 0 :(得分:1)
如果你想要一个数字参数,可以这样做:
foo[x_?NumericQ] := whatever
foo[x_] := Print["Error"]
在定义这种方式之前,请务必Clear
原始定义。
在您的示例中,您可以使用If