我正在 MATLAB 中编写一些简单的面向对象代码。我正在尝试调用我的类方法之一,其定义中没有输入或输出参数。
函数定义:
函数 roll_dice
函数调用:
obj.roll_dice;
执行此操作时,MATLAB 会说:
??? Error using ==> roll_dice
Too many input arguments.
Error in ==> DiceSet>Diceset.Diceset at 11
obj.roll_dice;
(etc...)
有人知道是什么原因造成的吗?是否存在我不知道我正在传递的 secret 自动参数?
最佳答案
当您调用电话时:
obj.roll_dice;
实际上相当于:
roll_dice(obj);
所以 obj
是传递给 roll_dice
的“ secret ”自动参数。如果您重写方法 roll_dice
以接受单个输入参数(即使您不使用它),事情应该可以正常进行。
或者,如果您确定您的方法roll_dice
不会对类对象执行任何操作,您可以将其声明为static method。作为Dan suggests .
有关 MATLAB 中面向对象编程的更多信息,here's a link to the online documentation .
关于function - 为什么我没有通过任何错误时会收到 "Too many input arguments"错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/715624/