Я просматривал Alamofire
исходный код, и есть фрагмент кода, который я не мог понять, как и почему он работает.
if var urlComponents = URLComponents(url: url, resolvingAgainstBaseURL: false), !parameters.isEmpty {
let percentEncodedQuery = (urlComponents.percentEncodedQuery.map { $0 + "&" } ?? "") + query(parameters)
urlComponents.percentEncodedQuery = percentEncodedQuery
urlRequest.url = urlComponents.url
}
Это urlComponents.percentEncodedQuery.map { $0 + "&" } ?? "")
, что я не понимаю, какэто работает и зачем это нужно.
Затем я написал свой фрагмент:
import Foundation
let a: String = "hello world"
a.map { $0 + "&" } //error: binary operator '+' cannot be applied to operands of type 'Character' and 'String'
print(a)
Но это дает ошибку в методе map
.
Почему нетэта работа и какова цель urlComponents.percentEncodedQuery.map { $0 + "&" } ?? "")
?