字典键引用可选结果和swift中展开的动机是什么?

时间:2016-09-28 04:52:44

标签: swift dictionary key-value forced-unwrapping

我开始研究swift并遇到了Array of Array引用和展开要求。我的意思是

  1> let interestingNumbers = [ 
  2.     "Prime": [2, 3, 5, 7, 11, 13], 
  3.     "Fibonacci": [1, 1, 2, 3, 5, 8], 
  4.     "Square": [1, 4, 9, 16, 25], 
  5. ] 

要求获得9" Square"必须编码

  6> interestingNumbers["Square"]![2]
那是那个!实际上需要解缠运算符。

现在,经典地,当不确定字典的下标是否存在时,典型的编程方法是在使用下标之前测试字典中是否存在下标,或者使用某种类型的异常机制,具体取决于语言您正在使用。我可以看到,对于字典现在,人们可以快速编写一行代码来从数组中获取值,而不用测试来包围代码。这意味着在swift中工作时我对编码字典引用的思考方式进行了一些调整。

一旦遇到错误并找出要查看的位置,文档就会解释所有这些。

我想知道用词典快速提出这种行为的动机是什么。也就是说,为什么Swift走这条路线而不是异常机制或者有功能来测试密钥存在?

我相信这些见解会让我更好地利用快速功能。

谢谢!

1 个答案:

答案 0 :(得分:1)

我很惊讶没有更多文章讨论Swift的设计理念。有些语言有关于这类事情的书籍,埃菲尔在这方面会浮现在脑海中。我确实发现http://swiftjester.org/papers/whats-different-about-swift.html这是一个有趣的部分。