2016-09-28 2 views
-1

Я учусь Swift, я создал массив в проекте PlaygroundArray сохраняет строку вместе с плавающей запятой в swift3?

var stringArray:[String] = ["sanoj","kashyap"] //creating array of type string 

После этого я создал массив как var stringArray:[String] = ["sanoj",2.2] // показывает мне массив, который является правильным (означает, что он дает ошибку) но

var stringArray1 = ["sanoj",2.2] does not giving any array ?? why? 

по опр массива:

массив представляет собой упорядоченный набор, который хранит несколько ва шт. такой же тип. Это означает, что массив Int может хранить только значения Int. И вы можете вставлять в него только значения Int.

enter image description here

Xcode:Version 7.3 (7D175) 
OS: 10.11.6 (15G31) 

проверка массива через перечисление, кажется, работает хорошо.

enter image description here

Почему ошибка не приходит при создании массива? Проверьте Xcode так же, как и все.

+0

«var stringArray: [String] = [" sanoj ", 2.2]' compile? Как '2.2' можно назначить массиву типа String? – Apurva

+0

Да, он скомпилирован. – Sandy

+1

Нет, вы не понимаете, как работает детская площадка. 'var stringArray: [String] = [" sanoj ", 2.2]' не может компилироваться. – matt

ответ

2

Как вы используете Xcode 7.3 означает, что вы работаете с Swift 2.3, так что второй массив stringArray1 является типом [AnyObject]. Вот почему вы не получаете ошибку. В Swift 2.3 или выше вы можете добавлять разные типы объектов в том же массиве, который имеет тип [AnyObject]

В Swift 3 это тип массива [Any].

2

Выводится как массив AnyObject. Как String, так и Double могут быть перенесены в AnyObject путем соединения. Таким образом, массив все еще имеет только один тип элемента!

+0

«Массив - это упорядоченная коллекция, в которой хранятся несколько значений одного и того же type "может быть ложным, что упоминается в блоге? Один путь? – Sandy

+0

Нет, это не так, потому что этот массив содержит весь объект типа' AnyObject', а в swift 'AnyObject' также тип типа' String', 'Int',' NSData' и т. Д. –

Смежные вопросы