В чем разница между структурой и диктом?

Эти два термина часто используются в этой документации. Понятие struct легко понять, т.е. объект, свойства которого фиксированы, но тогда мы имеем dict который может иметь любое количество свойств, так как он отличается от нормального Object? зачем нужен отдельный тип для этой функции?

1 ответ

Решение

Я думаю, что ключевое отличие дано на этой странице документации

Используя @struct, вы знаете, что компилятор переименует все свойства безопасно, потому что вы не можете использовать скобочный доступ. Используя @dict, вы знаете, что свойства будут иметь одинаковые имена после компиляции.

(Ключевым моментом, который нужно понимать в компиляторе замыкания, является то, что свойства, доступные с помощью скобок, не переименовываются).

Использование закрывающего компилятора ограничивает использование JavaScript теми способами, которые ВЫ указываете. Вы говорите компилятору предупредить вас, когда вы пишете код, который нарушает введенные вами ограничения с помощью таких аннотаций, как @struct а также @dict,

@dict действительно "как нормальный Object"Как вы говорите. Используя @dict вы говорите компилятору, что собираетесь добавлять свойства к объекту, и вы не хотите, чтобы эти свойства были переименованы в минимальные имена.

По сравнению @struct обычно используется для класса, где вам все равно, каким образом компилятор переименовывает свойства. Вы также не ожидаете, что когда-либо добавите свойство к такому объекту, так что это должно быть ошибкой, если вы это сделаете.

Кстати, примеры на этой странице о struct и dict немного сложны для понимания, по моему мнению, поэтому, если вы все еще не знаете, что на этой странице, не стесняйтесь спрашивать больше.

Другие вопросы по тегам