私はこのプロトコルとそれを実装する構造体を取得します。この例では、「Iterator.Element:Textrepresentableの拡張コレクション」とは何ですか?
protocol TextRepresentable {
var textualDescription: String { get }
}
struct Hamster: Textrepresentable {
var name: String
var textualDescription: String {
return "A hamster named \(name)"
}
}
このコードはどのように機能していますか?
extension Collection where Iterator.Element: TextRepresentable {
var textualDescription: String {
let itemsAsText = self.map { $0.textualDescription }
return "[" + itemsAsText.joined(separator: ", ") + "]"
}
}
このコードにはどのような拡張機能がありますか?
let murrayTheHamster = Hamster(name: "Murray")
let morganTheHamster = Hamster(name: "Morgan")
let mauriceTheHamster = Hamster(name: "Maurice")
let hamsters = [murrayTheHamster, morganTheHamster, mauriceTheHamster]
print(hamsters.textualDescription)
ところで、Swift Standard Libraryには、この機能をモデル化するプロトコル( 'CustomStringConvertible'と' CustomDebugStringConvertible')が既にあります。 – Alexander
@Alexander私は親愛なることについて何の考えも持っていません。迅速に、以下の答えが私の混乱を終了しました。 :) –