Swift代码中self.desk[number]![alpha]感叹号位置的作用解析
解析Swift代码中
self.desk[number]![alpha]的语法 咱们一步步拆解这段代码的逻辑:
- 先明确
desk的类型是[Int: [String: Chessman]],这是个嵌套字典:外层字典用Int做键,对应的值是另一个以String为键、Chessman为值的字典。 self.desk[number]是通过下标访问外层字典的操作,Swift里字典下标访问返回可选类型(如果number这个键不存在,就会返回nil),所以这一步得到的结果是[String: Chessman]?——一个可选的内层字典。- 中间的
!是强制解包运算符,作用是把这个可选的内层字典转换成非可选的[String: Chessman]类型。只有完成解包,才能继续用[alpha]下标去访问内层字典里的Chessman实例。
简单来说,这个!就是为了解开外层字典返回的可选内层字典,让后续的内层字典下标访问操作合法。
内容的提问来源于stack exchange,提问作者PLUXVR
相关产品推荐
相关产品推荐

