我最近阅读了一些关于干净代码和重构的书籍,特别是前者倾向于建议读者不要回复echo "<td>".$backupArray[0]['{$row['Name']}']."</td>";
echo "<td>".$backupArray[1]['{$row['Name']}']."</td>";
echo "<td>".$backupArray[2]['{$row['Name']}']."</td>";
,也不将它传递给任何函数(外来的,(为你)不可变代码,例如官方库或外部框架,不包括在内)。例如,参见 Robert C. Martin - 清洁代码:敏捷软件工艺手册,第110-112页(第6版)。
根据我的经验,这通常是有道理的。您通常可以抛出异常,返回空列表或数组,或使用一些创造性的解决方案来避免null
的可能性,而不是null
。当然,你可能必须抓住自己的例外情况 - 但这仍然比通用NullPointerException
更具表现力。
然后我想到你是否应该完全避免NullPointerException
- 即不只是在函数调用或返回语句中,而是到处。从我所知,这应该是可能和合理的
但是 - 仍然是学生 - 我不完全确定该假设/指南是否总是正确的。因此我的问题是:
您是否应该不惜一切代价避免使用null
?或者是否存在使用它的情况将是更实际的解决方案,尽管存在null
的风险?忽略您必须处理无法影响的外国代码的情况,例如官方图书馆。
答案 0 :(得分:5)
我认为通常你应该避免使用它,但我认为它可以用于内存管理。例如,您可能希望将一些短期对象设置为null
,以便向垃圾收集器发送信号,告知您要清理内存。
答案 1 :(得分:2)
它更基于意见,但由于语言规范允许null
的使用以及返回null
的本机方法的存在,例如HashMap#get(Object)
完全避免它是不可行的。
答案 2 :(得分:1)
有时它用于初始化可变对象....