我有一堆实体,我将值存储在地图中。我知道其中一些没有价值。
使用@TargetApi
明确表达这一点是不错的做法,还是说Map[Entity, Option[Value]]
本身已经具有这些语义?
答案 0 :(得分:2)
地图使用get
方法,该方法已经返回Option
,因此这实际上没有必要,并且会混淆地图的类型参数。
答案 1 :(得分:2)
这取决于用例。您可能需要也可能不需要区分“无价值”和“无关键”情景。想象一下,例如,用户的名字和中间名之间的映射。
当密钥存在但值为None
时,表示用户没有中间名。如果密钥不存在,则表示您没有该用户的记录。
另一方面,假设您将年份数字映射到2月29日的星期几。在这种情况下,非闰年根本不需要在地图中,并且您可以假设,如果没有密钥,那是因为没有与之关联的值。
答案 2 :(得分:1)
只需使用ViewController.swift:35:10: Instance method 'textFieldDidEndEditing(textField:)'
nearly matches optional requirement 'textFieldDidEndEditing' of protocol 'UITextFieldDelegate'
Map[Key, Value]
是一种矫枉过正的
对于第二种情况Map[Key, Option[Value]]
。您不希望保留值为none的键