在编写Perl模块时,我是否必须在所有方法中专门检查对象实例?

前端之家收集整理的这篇文章主要介绍了在编写Perl模块时,我是否必须在所有方法中专门检查对象实例?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在编写一个有多种方法的模块.让我们考虑一下:

package MyPackage;
sub new {
 ...
}

sub do_your_job {
 ...
}
1;

什么阻止某人调用do_your_job,如MyPackage-> do_your_job而不是$obj-> do_your_job?我是否需要检查每个接收引用的方法作为第一个参数?

解决方法

不可以.如果您的模块仅包含最少的文档,那么应该清楚do_your_job是一个需要在对象上调用方法.如果有人想以其他方式打电话,那就是他的错.

当然,您可以检查方法的第一个参数是否是受祝福的对象.但这至少有两个缺点:你会失去一点性能,并且你的方法会混乱,因为代码实际上没有做任何方法名称所承诺的事情.

猜你在找的Perl相关文章