44
A
回答
77
if (%hash)
会工作得很好。
如果你评估在标量上下文的哈希,它如果哈希 是空的返回false。如果有任何键/值对,则返回true;更确切地说,返回的值是一个字符串,包含 用过的桶的数量和分配的桶的数量,用 斜线分隔。
+2
它似乎比'keys%hash'慢得多。 – choroba 2013-09-25 21:37:54
17
20
有a bug造成绑散列在标量上下文总是返回false。该错误是fixed in 5.8.5。如果你担心向后兼容性,我会坚持使用if(!keys %hash)
。否则按照其他人的建议使用if(!%hash)
。
1
“更好”是一个主观术语。不过,我会争辩说,更容易理解的代码可以被描述为“更好”。出于这个原因,我得出结论!keys %hash
更好,因为编写Perl代码的人都会知道这段代码是干什么用的。 !%hash
是至少我不得不查找,以确保它是否真的起作用或只看起来像它会起作用。 (原因是标量上下文中散列的返回值相当混乱,而标量上下文中的数组行为是众所周知的并且经常使用。)
另外,!keys %hash
是保存。
所以不,没有更好或更省钱的方法来检查散列是否为空。
相关问题
- 1. Perl中,检查是否在哈希
- 2. 如何检查是否嵌套哈希属性是空
- 3. 检查哈希值是否为零
- 4. 检查'哈希键字符串'是否包含perl中的一个字
- 5. 检查哈希是否包含任何空值
- 6. 为什么一个空的Perl哈希有一个关键?
- 7. 如何清除一个Perl哈希
- 8. 这个Perl是如何检查一个目录是否为空的工作?
- 9. Perl哈希哈希
- 10. 如何检查两个哈希值是否相等?
- 11. 检查多哈希键是否存在
- 12. PHP - 检查哈希是否已过期
- 13. 是否存在哈希零检查?
- 14. 如何在Perl中检查几个变量是否为空
- 15. 参考哈希键的链哈希一个Perl哈希
- 16. 获取一个Perl哈希
- 17. 如何检查密钥是否存在于深度Perl哈希中?
- 18. 如何在Perl中创建一个新的空哈希引用?
- 19. 哈希哈希在Perl中
- 20. 检查一个变量是否为空
- 21. 检查一个值是否为空
- 22. 检查一个NSMutableDictionary是否为空?
- 23. 检查一个表是否为空
- 24. 检查一个BSTR是否为空
- 25. 检查一个对象是否为空
- 26. 如何检查密钥是否存在于Ruby哈希中?
- 27. Ruby:如何检查哈希定义中是否存在变量
- 28. 如何检查哈希cookie值是否设置?
- 29. Perl unicode哈希键查找
- 30. 如何检查散列引用在perl中是否为空
如果您觉得您的问题已得到解答,请点击左侧的复选标记以接受答案。 – TLP 2012-02-26 00:07:50