При доступе к словарю с использованием нижнего индекса тип выражения всегда является необязательным для типа значения, поскольку используемый вами ключ может отсутствовать в словаре. Вы не можете добавить два дополнительных Int
вместе.
Вам необходимо рассмотреть случай «что делать, если ключ “q\(pick)”
не существует в словаре?», И соответственно развернуть два дополнительных варианта.
На мой взгляд, разумно сделать здесь, когда ключ не существует, просто использовать значение 0
, поскольку это тождество сложения:
combPre[“q\(pick)] = (p1Pre[“q\(pick)”] ?? 0) + (p2Pre[“q\(pick)”] ?? 0)
Если вы 100% уверены, что ключ будет существовать, вы можете рассмотреть возможность его принудительного развертывания:
combPre[“q\(pick)] = p1Pre[“q\(pick)”]! + p2Pre[“q\(pick)”]!
Делайте это только в том случае, если вы 100% уверены, как, например, «если ключей не существует, то должно случиться что-то действительно плохое» в такой ситуации.