Я хотел бы добавить расширение к Dictionary<Hashable, RangeReplaceableCollection>
, которое добавило бы некоторые функциональные возможности только для RangeReplaceableCollection where RangeReplaceableCollection.Element is Value type
Я хотел бы добавить значение коллекции, которая является значением в словаре - в основном из здесь .Как было отмечено в комментариях, есть более короткий способ сделать это.Можно добавить к dict со значением по умолчанию, используя dict[key, default: value]
, хотя в документации по Словару есть примечание:
Не используйте этот индекс для изменения значений словаря, если тип значения словаря является классом.В этом случае значение по умолчанию и ключ не записываются обратно в словарь после операции.
Таким образом, наивный способ реализации моего расширения был примерно таким:
extension Dictionary
where Value: RangeReplaceableCollection
where RangeReplaceableCollection.Element is ValueType {
Мне было интересно, возможно ли достичь чего-то подобного (и если да, то как?).
Я также думал о чем-то вроде: protocol ValueRangeReplaceableCollection : RangeReplaceableCollection where RangeReplaceableCollection.Element: Int {}
, чтобы использовать позже как ограничение по стоимости, но я не мог 'Я не могу придумать, как правильно это сделать.
Буду признателен за любые мысли по этому поводу.
РЕДАКТИРОВАТЬ: я понимаю, что вы можете просто использовать расширение из сущности и не заботиться о ценности/ ссылочные типы.Мой вопрос больше о дженериках Swift.