是否需要在seterrorenable(false)
之前调用seterror(null)
?为什么?我看不出有什么不同,但我看到很多人这样做。
没必要把他们两个都叫来。当您第一次为TextInputLayout设置错误时,它的EditText字段下面的高度会增加一点,以显示该错误。
如果使用seterror(null)
,只删除错误文本,但是如果使用seterrorenable(false)
,错误文本和额外的空间都将删除(注意,如果您为TextInputLayout设置了帮助器,则错误只替换为帮助器文本,而不添加额外的空间,因此这两种方法之间没有任何区别)。
问题内容: 与空检查相比,变量分配是否昂贵?例如,在将foo分配为null之前是否值得检查其是否为null? 还是这无所顾忌? 问题答案: 这是一个微微优化(可能还是由编译器处理)。不用担心 通过专注于程序的实际算法,您将获得更大的回报。 我们应该忘记效率低下的问题,例如大约97%的时间:过早的优化是万恶之源。-唐纳德·努斯
问题内容: 当我浏览一些代码时,我注意到使用logger的方式如下, 但是在某些代码中,我是这样观察的。 当我查看log4j的源代码时,已检查了Logger本身的方法 。那为什么我们需要这些不必要的开销呢? 问题答案: 当传递给您的字符串花费时间评估时,这很有用,在这种情况下,如果未启用调试,则可以跳过此评估。 IMO使得代码的可读性大大降低,因此只有在性能有了显着提高时才应使用它。
使用 === 操作符来检测 null 和布尔 false 值。 PHP 宽松的类型系统提供了许多不同的方法来检测一个变量的值。 然而这也造成了很多问题。 使用 == 来检测一个值是否为 null 或 false,如果该值实际上是一个空字符串或 0,也会误报为 false。 isset 是检测一个变量是否有值, 而不是检测该值是否为 null 或 false,因此在这里使用是不恰当的。 is_nul
问题内容: 假定以下代码,其中“ sock”是TCP套接字的句柄,该句柄先前已使用epfd指定的epoll文件描述符注册。 如果套接字无论如何都要随后关闭,是否仍然需要调用epoll_ctl?还是由于关闭套接字而隐式注销了套接字? 问题答案: 从手册页: Q6 关闭文件描述符会导致它自动从所有epoll集中删除吗? A6 是,但是请注意以下几点。文件描述符是对打开的文件描述的引用(请参阅(2))。