Как преобразовать массив Int в String

array

#1

Есть массив, условно говоря

let number = [3, 6, 9]

Нужно его сделать строковым, String. Как это сделать? Что-то гугл не выдает конкретики


#2
 let strings = number.map { $0.description }

#3

ок, спасибо, разобрался. Вот готовый вариант:

let number = [3, 6, 9]
var stringArray = number.map 
{ 
String($0)
}
print("My Array = ", stringArray)

#4

Вот Вам же грамотно подсказали, а вы посмотрели и сделали как не нужно…


#5

и что же я не так сделал? оба варианта работают.


#6

Работает как и должно, да. Так можно приводить к стрингу, а еще можно так

let strings = number.map { "\($0)" }

Но у вас стилистика Си-шная, когда фигурная скобка начинается с новой строки. На свифте так не пишут - если выражение компактное, как в вашем случае:

{ /*выражение*/ }

а не:

{
//выражение
}

Если не компактное (пускай, для примера, будет тот же map):

let strings = numbers.map {
    // длинное выражение
    // на несколько строк
}

#7

Спасибо за подсказку. Взял в свою коллекцию)) Погуглил map, да, этот метод проще. Хотя вот не понял, как этот метод понимает, что надо преобразовать именно к Sting? В предыдущем варианте решения тип значений массива задавался инициализатором, а здесь вроде нет никаких указателей.


#8

Допустим у нас есть какое-нибудь значение какого-нибудь типа

let someName: someType = someValue

можно преобразовать его в стринг таким способом

 let string = "\(someName)" 

у некоторых типов есть поле description, которое возвращает стринговое значение этого типа

let string = someName.description

так же можно инициализировать стринг, передававя в параметры инициализатора некоторые типа (int, к примеру)


#9

точно, не заметил кавычек)) сэнкс

а вот последнюю фразу можно немного пояснить на примере?

так же можно инициализировать стриг, передавая в параметры инициализатора некоторые типа (int, к примеру)

и заодно сразу такой вопрос - как определяется, где сабскрипт, а где поле. Например, map выше это вроде как сабскрипт, а description как поле, но синтаксис у них одинаковый, через точку


#10
 let intValue: Int = 10
 let stringValue = String(intValue)
 
 let floatValue: Float = 2.5
 let stringValue = String(floatValue)
 ...

Вы о чем? Сабскрипт - это индекс, поле - это переменная класса. map - это метод (или функция), но никак не сабскрипт.


#11

ясно, спасибо. Вопрос конечно простой, но пока заучится эта терминология))

И да, насчет сабскриптов, полей и методов та же истории, еще не до конца отложилось.

Но пока в принципе достаточно, есть три варианта решения для преобразования Int в String