Это хорошая практика для любого типа элемента в Swift? - PullRequest
0 голосов
/ 04 января 2019

это хорошая практика для любого типа элемента в swift?

Например

let arrayObject = [Any]

или

let arrayObject  = [[String: String]]

Ответы [ 2 ]

0 голосов
/ 05 января 2019

Сильная система типов Swift поощряет вас быть всегда максимально конкретным типом . Пожалуйста, не используйте Any как не заботясь о типе.

Я бы рекомендовал рассмотреть этот список приоритетов (от высокой к низкой)

  1. Если тип известен и однороден, используйте статический тип.
    Например, в словаре JSON, если все значения String, всегда используйте [String:String], а не [String:Any].
  2. Если тип является неоднородным - например, объекты в массиве - и содержит только несколько известных типов, используйте общий протокол.
  3. Попробуйте использовать дженерики.
  4. Использование Any
0 голосов
/ 04 января 2019

Когда вы знаете тип вашего элемента Array, вы можете избежать использования Any и использовать прямой тип данных.

Например: если вы держите массив String, вы можете напрямую определить тип String, как показано ниже.

var arrayObject = [String]()

Если вы удерживаете неизвестный тип объектов в массиве или несколько типов объектов в массиве, вы можете использовать Any.

Например: если вы держите String и NSNumber в одном массиве, вы можете определить Any как тип элемента массива, как показано ниже.

var arrayObject = [Any]()
arrayObject.append("Hundred")
arrayObject.append(NSNumber(value: 100))

let str = arrayObject[0] as! String
let number = arrayObject[1] as! NSNumber
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...