问题标签 [null-check]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
actionscript-3 - 可以以更好的方式对 null 进行默认检查吗?
很多时候我发现自己需要写类似的东西:
我很好奇是否有更好的方法来做到这一点?我主要担心的是我必须编写params["prizeLevel"]两次。
当然,这可以提取为类似于以下的函数:
但是,我必须从我想要进行此检查的任何地方访问此功能。因此,我想知道是否有一些聪明的方法可以解决这个问题。也许在某种位魔法的帮助下?或者原型/动态的东西在这里适用吗?
到目前为止,我想出的最佳解决方案是在代码 IDE 中创建一个宏,以使某些特定的键盘组合编写此代码。但我敢打赌,有人会有更好的主意。
null - Is it better to check for null and return or check for non-null and continue?
Given the following basic class:
Which of the following implementations of the test
method is better programming practice?
In trying to recollect from a professor some 10 years ago, best practice for an if statement is to have the condition that is likely to be true more often than false (the latter). However, recently I have been using a trial of ReSharper, and their suggestion is the former. The m_memberVariable
member is initialized at instantiation of the class and will likely be non-null for the life of the class.
c# - C# 有没有类似于 JavaScript 的操作 || 二传手?
C# 和 JavaScript 的 || 有类似的操作吗?二传手?
例如,在 JavaScript 中,如果我想检查一个值是否为 null 并设置一个默认值,我可以这样做:
但是,当我想要 C# 中的这个功能时,我必须走这条路:
我知道这是小事,乞丐不能成为选择者,但如果可能的话,我想避免得到任何涉及疯狂黑客或扩展方法的答案。我可以使用三元运算符,但我只是好奇是否有我错过的语言功能。
更新:
到处都是很好的答案,但是 J0HN 和 Anton 打了它的头。C# 不会像上面示例中的 JavaScript 那样执行“虚假”值,因此??
运算符不考虑空字符串。
感谢您的宝贵时间和出色的回应!
java - null != something 和 something != null 之间的区别
null != something
Java和something != null
Java之间有区别吗?如果有区别,那么我应该使用哪一个,为什么?
java - javax.annotation.Nonnull 与断言
我在方法参数上使用 Findbugs 和 javax.annotation.Nonnull。
在私有方法上,我通常添加一个断言行来检查空值,例如
最新的 Netbeans 版本 (7.3rc2) 报告断言检查是不必要的(因为 Nonnull 注释)。我不完全确定这是否是 Netbeans 错误。
可以因为我指定了 @Nonnull 注释而删除断言行吗?
据我了解,注释仅在静态分析期间使用,而断言在启用时在执行期间处于活动状态,因此两者不可替代。
java - 通过 != null 或 !str.equals(null) 检查 Java 字符串空值?
在java中检查非空值的最佳方法是什么?
query != null
对比 !query.equals(null).
哪个更好?为什么?
sql - 对字符串变量进行空或空检查
我想知道上面的代码是否可以检查变量是空还是空。
java - 为“此”访问发出空检查?
当您通过this引用访问自己的实例字段时(例如,来自私有方法的or字段),生成的 Android Dalvik 字节码将包含一个字节码指令:object
int
iget
这是当您访问另一个对象的字段(即不是通过this
指针)时发出的相同指令,因此它似乎无法区分其他对象和您自己。在字节码中,这是可以理解的,但 JIT 可以做得更多。
检查Android源代码,我没有看到JIT会自动消除这种情况下的空检查(即当您访问时this
)。它在已经空检查的 Dalvik 寄存器的基本块中被消除,很好,但是(对我来说)它似乎也可以被消除this
访问(即使它是基本块的第一条指令,或任何指令,因为this
不能为空)。
我错过了什么?是出于安全/运行时类型安全的原因吗?或者我只是忽略了源代码?为什么 VM (JIT) 不能this
以独特的方式处理?(我理解本机代码显然不能,因为this
内存地址就像其他任何东西一样。)
编辑:据我所见,每次基本块在 dvm 中结束时,都会清除“已检查空”标志。我要说的是,保存它的寄存器的“已检查空”标志可以预先设置为 1(即使在基本块之间的转换期间也不需要清除该值)。