我想要一個定義一些方法和屬性的協議。但是,符合所述協議的不同類別之間的屬性類型和方法返回類型可能會有所不同。例如:A.getContent()
可能會返回類型String
的值,但B.getContent()
可能會返回類型爲Int
的值。在我的例子中,我使用了Any
這個類型。這可能在Swift中嗎?或者這是一個完全錯誤的方法?也許用泛型?來自協議方法的不同返回類型
protocol Content {
func getContent() -> any
}
class A: Content {
func getContent() -> String {
return "Im a String"
}
}
class B: Content {
func getContent() -> Int {
return 1234
}
}
看看[Swift編程語言指南中的關聯類型部分](https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Generics.html#//apple_ref/doc/uid/TP40014097-CH26 -ID189):) – Hamish
也許與泛型。 – matt