Массивы и экземпляры класса


#1
Помогите разобраться: хочу заполнить массив объектами класса, вот код:

class testClass {
let a:Int
init(a:Int){
self.a=a
}
}
var arrayClassTest=(testClass)()
//почему-то не отображаются квадратные скобки но здесь тип пустого массива по типу класса
for i in 0…10 {
var newClass=testClass(a: i)
print(newClass.a) arrayClassTest.append(newClass)
}
Что здесь не правильно и вообще так можно делать?[details=Summary]This text will be hidden[/details]


#2

все правильно

class testClass {
	let a:Int
	init(a:Int){
		self.a=a
	}
}
var arrayClassTest=[testClass]()

for i in 0...10 {
	var newClass = testClass(a: i)
	print(newClass.a)
	arrayClassTest.append(newClass)
}
print(arrayClassTest)

код оформлять кнопкой </>


#3

А у меня теперь вопрос спустя год - допустим в классе несколько свойств. И мы сделали массив с экземплярами этого класса.

Как теперь можно достать любое из свойств каждого элемента этого массива с экземплярами?..


#4

array.map { $0.property }


#5

Не знаю что такое map (недавно только изучаю swift)…но я нашел себе решение как

array[j].propery где j - индекс элемента


#6

Ребят, названия классов с большой буквы пишутся. Иначе читаешь и трудно воспринимать код. :slight_smile:


#7

если тебе нужен конкретное свойство конкретного элемента, то в массиве выдергиваешь по индексу элемент
array[index] и через точку потом смотришь его свойства.

Или тебе надо конкретное свойство выдернуть у всех элементов массива?


#8

На досуге почитай про filter, map, reduce. Это полезные функции, которые могут сильно упростить жизнь. :thinking:


#9

Вот как раз по этому " array[index] и через точку потом смотришь его свойства." я понял как сделать то, что мне нужно :slight_smile:

Будет время и возможность - обязательно про мап, фильтр и reduce почитаю, спасибо!