В чем разница между var list = NSMutableArray()
и var list:NSMutableArray = []
при объявлении в Swift?Различия в декларации массива в Swift
ответ
Насколько я знаю, нет никакой эффективной разницы.
С первым утверждением вы используете функцию вывода типа Swift. Вы создаете экземпляр класса и из назначения этого экземпляра в var компилятор вводит тип.
Во втором заявлении вы явно определяете тип list
. Назначение с правой стороны знака равенства теперь создает пустой Swift Array, но из-за явного типа NSMutableArray он будет передан в этот класс. Права выражение знака равенства делает то же самое, как NSMutableArray()
делает, но с помощью []
у вас есть умный сокращенный вариант для создания экземпляра NSMutableArray со значениями, как этот [2,1,4]
или [someObject, someOtherObject]
и т.д. Благодаря @Neo.
Во втором заявлении компилятор не жаловался на то, что оставил экземпляр на правой стороне, он просто был бы нелепо. С другой стороны, первый оператор без выражения NSMutableArray()
невозможен.
Имейте в виду, что NSMutableArray
является классом из Foundation Foundation и в основном использовался в контексте Objective-C, тогда как Swift предлагает собственный тип коллекции для такого списка. Они не совпадают, но неявно передаются компилятором.
Надеюсь, это все ясно.
Как сказал JulianM, нет никакой разницы ... И объявляем/инстанцировании в NSMutableArray :-)
Единственное «разностной», что есть
var list = NSMutableArray()
Эта строка кода объявляет список и наследует его тип конкретизированной NSMutableArray ...
var list:NSMutableArray = []
Хотя эта строка кода объявляет список AS NSMutableArray и конкретизирует его как NSM utableArray ...
Но это просто разница в записи ... Оба означают то же самое ...
- 1. Различия в Декларации пространства JavaScript
- 2. Различия в декларации дженериков в Java
- 3. javascript функции декларации и различия в области
- 4. Сравните 2 массива и перечислите различия - Swift
- 5. Ожидаемый идентификатор в функции декларации в Swift
- 6. Каковы различия в декларации List или ArrayList в Java?
- 7. Swift - Ожидаемая декларация В декларации 'View Controller'
- 8. Различия в формах Numpy массива
- 9. Индекса массива ошибки диапазона на условной декларации Swift
- 10. Swift: очистить декларации/мета-программирования
- 11. Каков размер массива в этой декларации
- 12. Различия между CBUUID и NSUUID в swift
- 13. Ошибка декларации декларации в C++
- 14. Swift различные способы создания пустого массива, каковы различия между ними?
- 15. Различия между обозначениями массива
- 16. Получить Трехмерный различия массива
- 17. Что касается декларации Строки массива
- 18. массива Синтаксис в Swift
- 19. Оптимизация массива в Swift
- 20. Объявление массива в Swift
- 21. Получение элементов массива различия в Java
- 22. Различия в Машинопись массива буквального синтаксиса
- 23. Swift - макросы препроцессора и декларации классов
- 24. декларации и заполнение двумерного массива в структуре в с
- 25. Неясная формулировка о декларации в матричной декларации
- 26. Вычислить различия между элементами массива
- 27. В Swift, каков эффект наличия декларации типа после двоеточия?
- 28. инициализировать переменные Swift класса в декларации или с помощью init?
- 29. Переменные класса печати в Swift - ошибка ожидаемой декларации
- 30. C++ декларации размер массива и Const
Исправить. И, как объясняет этот ответ, мы должны действительно использовать «Swift version» массива, потому что он лучше интегрирован с языком, он основан на Struct и предлагает дженерики. NSMutableArray принадлежит к прошлому. –