Вы можете использовать as
, чтобы определить тип анонимного вложения. В этом случае вам также необходимо указать тип ввода:
let result = array.map({ $0.description } as (CustomStringConvertible) -> String)
Примечание: В качестве типа ввода вы можете использовать любой тип из array
. , Здесь я только что использовал протокол CustomStringConvertible
, так как это то, что необходимо для доступа к свойству .description
.
или, как вы упомянули, вы можете указать тип вывода, если вы дадите имя для входной параметр:
let result = array.map { value -> String in value.description }
Другой способ взглянуть на это - заметить, что map
возвращает Array
любого типа, который возвращает закрытие map
. Вы можете указать, что результатом карты будет [String]
, и Swift будет делать вывод, что закрытие map
возвращает String
:
let result = array.map({ $0.description }) as [String]
или
let result: [String] = array.map { $0.description }