Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
词典关键参考可选结果和swift中展开的动机是什么?_Swift_Dictionary_Key Value_Forced Unwrapping - Fatal编程技术网

词典关键参考可选结果和swift中展开的动机是什么?

词典关键参考可选结果和swift中展开的动机是什么?,swift,dictionary,key-value,forced-unwrapping,Swift,Dictionary,Key Value,Forced Unwrapping,我开始研究swift,发现了数组引用和展开需求字典。我的意思是 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脱离“正方形”,必须进行编码 6> interestingNumbers["Sq

我开始研究swift,发现了数组引用和展开需求字典。我的意思是

  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脱离“正方形”,必须进行编码

  6> interestingNumbers["Square"]![2]
在哪里!真的需要展开运算符

现在,一般来说,当不确定字典的下标是否存在时,典型的编程方法是在使用下标之前测试字典中是否存在下标,或者根据您使用的语言使用某种类型的异常机制。我可以看到,对于字典,现在可以用swift编写一行代码,从数组中获取值,而无需使用测试来包围代码。这意味着在使用swift时,我对编码字典引用的想法有了一些调整

一旦遇到错误,文档确实解释了所有这些,并找出了查找的位置

我想知道是什么动机让斯威夫特在字典里表现出这种行为。也就是说,为什么Swift走这条路,而不是一个异常机制,或者有功能来测试密钥的存在

我要求相信这些见解将使我更好地利用swift功能


谢谢

我很惊讶没有更多的文章讨论Swift的设计理念。有些语言的书中充斥着这样的东西,埃菲尔就在这方面出现了。我确实找到了一件有趣的作品

你总是可以做
有趣的数字[“Square”]?[2]
。嗯,是的,我知道有!然后呢?作为展开运算符,但为什么还要有条件结果呢?我认为专业和学术界可能已经发现异常和测试的开销太高,或者可能有更多的风格原因。它给我的印象有点像我在过去学习编程Mac电脑的懒惰延迟评估风格。还有其他利用条件结果类型的特殊技术吗?