当哈希值不存在时,为什么不引发异常?

萨里夫

我正在学习Ruby语言,并且在编译简单的打印操作时看到了一件奇怪的事情。代码如下:

z = { 'mike' => 75, 'bill' => 18, 'alice' => 32 }

print z['bill'], " ", z['joe'], "  "\n"

在这里,我得到的输出为18即使没有可用的值joe也不会引发任何错误。

为什么?在其他语言中c#,它将引发异常!

是因为我正在使用在线编译器进行编译吗?

如果在中找不到哈希键Hash,则[]默认情况下,该方法将返回nil因此,在这种情况下z['joe']将导致nil,在打印时将导致一个空字符串。

另一方面,初始化散列时,可以定义一个代码块,当散列中不存在该键时将运行该代码块。例如:

z = Hash.new do |hash, key|
  raise("Key #{ key } is not valid")
end

作为替代方案,您还可以使用,Hash#fetch并使其失败KeyError,或者new在键不退出时指定默认值或要执行的代码块(如中的)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

当哈希值不存在时,为什么不引发异常?

来自分类Dev

在不存在的字典中访问元素时,为什么不引发回溯?

来自分类Dev

当键不存在时,哈希表返回null或引发异常?

来自分类Dev

如果实体不存在,如何告诉Springdata存储库的delete方法不引发异常?

来自分类Dev

ActiveRecord:引用键不存在时如何引发异常

来自分类Dev

在UPDATE查询期间不存在WHERE时引发异常

来自分类Dev

为什么此代码不引发异常?

来自分类Dev

为什么不引发此异常?

来自分类Dev

为什么不引发浮点异常(FPE)?

来自分类Dev

返回不存在的值而不引入整数 (0)

来自分类Dev

为什么此代码不会显示错误:当不存在的文件引发e时找不到文件?

来自分类Dev

为什么运行“ ifconfig”时不存在“ 10.0.2.2”?

来自分类Dev

为什么当我们联系不存在的枚举时我们不会得到异常?

来自分类Dev

当Rails中不存在数据库时会引发什么类型的异常?

来自分类Dev

文件不存在时,BitmapImage引发初始化异常

来自分类Dev

Flask-SQLAlchemy query.get()在查询不存在的键时引发异常

来自分类Dev

解析iOS版SDK引发异常尝试在调用图钉时查找不存在的uuid

来自分类Dev

Flask-SQLAlchemy query.get()在查询不存在的键时引发异常

来自分类Dev

Zend ACL在不存在的资源上引发异常

来自分类Dev

为什么此代码在编译正常时会引发“名称空间中不存在”错误?

来自分类Dev

为什么打字稿会引发错误消息:类型上不存在属性?

来自分类Dev

如果表不存在,为什么DROP TABLE IF EXISTS会引发MySQL警告?

来自分类Dev

为什么_ftscanf_s引发异常而_ftscanf不引发异常?

来自分类Dev

汇总汇总不存在的列时,为什么熊猫会给出NaN作为列值?

来自分类Dev

创建新容器时,Azure Blob存储会引发异常。声称它已经存在,但不存在

来自分类Dev

当我们在视图中访问未定义的实例变量时,Rails为什么不引发异常?

来自分类Dev

为什么CopyOnWriteLinkedList不存在?

来自分类Dev

为什么XMLHttpRequest responseText不存在?

来自分类Dev

为什么WKWebView委托不存在?

Related 相关文章

  1. 1

    当哈希值不存在时,为什么不引发异常?

  2. 2

    在不存在的字典中访问元素时,为什么不引发回溯?

  3. 3

    当键不存在时,哈希表返回null或引发异常?

  4. 4

    如果实体不存在,如何告诉Springdata存储库的delete方法不引发异常?

  5. 5

    ActiveRecord:引用键不存在时如何引发异常

  6. 6

    在UPDATE查询期间不存在WHERE时引发异常

  7. 7

    为什么此代码不引发异常?

  8. 8

    为什么不引发此异常?

  9. 9

    为什么不引发浮点异常(FPE)?

  10. 10

    返回不存在的值而不引入整数 (0)

  11. 11

    为什么此代码不会显示错误:当不存在的文件引发e时找不到文件?

  12. 12

    为什么运行“ ifconfig”时不存在“ 10.0.2.2”?

  13. 13

    为什么当我们联系不存在的枚举时我们不会得到异常?

  14. 14

    当Rails中不存在数据库时会引发什么类型的异常?

  15. 15

    文件不存在时,BitmapImage引发初始化异常

  16. 16

    Flask-SQLAlchemy query.get()在查询不存在的键时引发异常

  17. 17

    解析iOS版SDK引发异常尝试在调用图钉时查找不存在的uuid

  18. 18

    Flask-SQLAlchemy query.get()在查询不存在的键时引发异常

  19. 19

    Zend ACL在不存在的资源上引发异常

  20. 20

    为什么此代码在编译正常时会引发“名称空间中不存在”错误?

  21. 21

    为什么打字稿会引发错误消息:类型上不存在属性?

  22. 22

    如果表不存在,为什么DROP TABLE IF EXISTS会引发MySQL警告?

  23. 23

    为什么_ftscanf_s引发异常而_ftscanf不引发异常?

  24. 24

    汇总汇总不存在的列时,为什么熊猫会给出NaN作为列值?

  25. 25

    创建新容器时,Azure Blob存储会引发异常。声称它已经存在,但不存在

  26. 26

    当我们在视图中访问未定义的实例变量时,Rails为什么不引发异常?

  27. 27

    为什么CopyOnWriteLinkedList不存在?

  28. 28

    为什么XMLHttpRequest responseText不存在?

  29. 29

    为什么WKWebView委托不存在?

热门标签

归档