java - !(a==b) 和 a!=b 之间的区别
问题描述
上周在高中时,我的 IT 老师给了我们一个程序,她写的一个部分让我很感兴趣。在 if 语句中,她检查数组的元素是否不为空,因此程序可以继续处理该元素,因此她写道:
if (!(array[i] == null)
,这让我很困惑,因为使用这种方法你只是使用了更多的括号,这使得它不太容易阅读。我把它改成它ìf (array[i] != null)
工作得很好。但是现在我很困惑,因为作为一名老师,我假设您对您的学科了解很多,那么她是否有充分的理由使用她的方法而不是我的方法?有什么我不知道的细节吗?
解决方案
这两个表达式的语义没有区别。我会说没有充分的理由写前者。
但是现在我很困惑,因为作为一名老师,我假设您对您的学科了解很多,那么她是否有充分的理由使用她的方法而不是我的方法?
最好的办法是问你的老师。关于教师——作为人类——要记住的最重要的事情是他们有经验、偏见并且容易犯错。
换句话说,她过去可能被一些问题所困扰,通过这样写它来解决 - 问她,你可能会学到一些东西。
或者,她可能认为这样更好,并且无法清楚地表达对个人偏好的强烈好处;或者这就是她学习的方式,并且没有看到强烈的改变需要——你可以从中学到一些东西,只要有不止一种方法可以表达相同的语义。
(我非常喜欢它,因为它更简洁——括号更少;如果你不打算使用它!=
,为什么语言设计者会费心提供——但这些是我个人的偏好)。!=
或者,她可能打算使用!=
,却忘了回去修复它。很容易忘记清理东西。
推荐阅读
- java - Java:将文件放入 sftp 后如何从本地存储库中删除文件
- android - 具有多个值的 AIDL 中的回调
- sql - 列值到一行
- mobile - 如何以编程方式在 Cypress 中设置不同的 UserAgent
- python - Python:无法将连接的字符串与常规字符串进行比较
- postgresql - Postgresql 将 uuid 字段推送到 Clickhouse 数据类型错误
- r - 通过子列表元素与字符向量的部分字符串匹配,使用基数 R 子集 R 列表
- ruby-on-rails-5 - 带有方法参数的Rails 5 before_action
- file - 如何在没有 url-loader 的 Webpack 5 中包含图像文件
- c - scanf() 是否更新常量变量?