在映射到具有选定分隔符的字符串的数组中使用 'init' 不明确

Ambiguous use of 'init' in Array mapped to String with chosen separators

正如@vadian 所建议的,我正在从 Paul Hudson 的 100 天 SwiftUI 中学习 Xcode 以更好地理解基础知识(尽管我仍在努力争取时间来交付工作 GitHub 存储库搜索 -不,这不是我现在从事的工作)。

我正在学习关于数组的课程,现在是非常基础的东西,我很难将数组中的字符串映射到已排序的数组上。我不明白为什么,但我明白了:

Ambiguous use of 'init'

错误。

代码如下:

let cities = ["London", "Tokyo", "Rome", "Budapest"]
print(cities.sorted())

let citiesSorted = cities.sorted()

let citiesSortedString = citiesSorted.map(String.init).joined(separator:", ")

这真的很奇怪,因为我之前在同一个游乐场中取出了类似的东西,但没有使用排序的数组:

var schoolScoresString = schoolScores.map(String.init).joined(separator:", ")
print(schoolScoresString)

是的,我尝试将 let 更改为 var。没用。

cities 已经是 [String] 类型,因此您将 String 传递给 String.init,这显然是行不通的。如果要将 String 的数组合并为单个 String,请删除 map 并在数组上调用 joined

let citiesSortedString = citiesSorted.joined(separator:", ")