В чем разница между структурой и диктом?
Эти два термина часто используются в этой документации. Понятие struct
легко понять, т.е. объект, свойства которого фиксированы, но тогда мы имеем dict
который может иметь любое количество свойств, так как он отличается от нормального Object
? зачем нужен отдельный тип для этой функции?
1 ответ
Я думаю, что ключевое отличие дано на этой странице документации
Используя @struct, вы знаете, что компилятор переименует все свойства безопасно, потому что вы не можете использовать скобочный доступ. Используя @dict, вы знаете, что свойства будут иметь одинаковые имена после компиляции.
(Ключевым моментом, который нужно понимать в компиляторе замыкания, является то, что свойства, доступные с помощью скобок, не переименовываются).
Использование закрывающего компилятора ограничивает использование JavaScript теми способами, которые ВЫ указываете. Вы говорите компилятору предупредить вас, когда вы пишете код, который нарушает введенные вами ограничения с помощью таких аннотаций, как @struct
а также @dict
,
@dict
действительно "как нормальный Object
"Как вы говорите. Используя @dict
вы говорите компилятору, что собираетесь добавлять свойства к объекту, и вы не хотите, чтобы эти свойства были переименованы в минимальные имена.
По сравнению @struct
обычно используется для класса, где вам все равно, каким образом компилятор переименовывает свойства. Вы также не ожидаете, что когда-либо добавите свойство к такому объекту, так что это должно быть ошибкой, если вы это сделаете.
Кстати, примеры на этой странице о struct и dict немного сложны для понимания, по моему мнению, поэтому, если вы все еще не знаете, что на этой странице, не стесняйтесь спрашивать больше.