【发布时间】:2014-12-19 13:08:52
【问题描述】:
当你用一个对象调用一个函数时,你应该在调用函数之前检查函数中的 null 还是两者都检查?什么是更好的编程实践?
类似的东西
Test a = getTest();
if (a != null) {
myFunc(a);
}
def myFunc(x):
print x.val();
或
Test a = new Test();
myFunc(a);
def myFunc(x):
if (x != null) {
print x.val();
}
或
Test a = new Test();
if (a != null) {
myFunc(a);
}
def myFunc(x):
if (x != null) {
print x.val();
}
我明白为什么在函数中进行空检查是好的,因为你不必到处检查,但有时你需要在调用函数之前检查,所以检查两次感觉很多余......
谁能解释一下?
【问题讨论】:
-
如果你想融入生态系统,做你标准库函数做的事情。
printf是否检查空格式字符串?strcpy是否检查空源或目标?fwrite是否检查空文件指针或缓冲区?如果他们这样做,你也应该这样做。