Generische Property Declaration

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Generische Property Declaration

    Hallo,

    ich moechte eine generische Sortierfunktion implementieren. In dieser soll es moeglich sein, den Sortier-Parameter des Typen <T: Comparable> dynamisch hereinzureichen.
    Beispiel:


    Quellcode

    1. protocol Sorter: Comparable {
    2. var id: String { get }
    3. }
    4. public func sort<T: Sorter>(for items: [T]) -> [[T]] {
    5. return items.map(\.id).map { id in
    6. items.filter { $0.id == id }
    7. }
    8. }
    das Problem was ich habe ist, wie koennte ich < var id: String { get } > dynamisieren, so das ich bei dem Aufruf der < func sort > die property-declaration injecten kann.
  • Hey,

    könntest du etwas näher erläutern, was du mit „Dynamisieren“ des Sort-Properties meinst?

    Geht es darum, welche Property genutzt werden soll bzw. das diese dynamisch sein soll? Das würde für mich nach #keypath klingen.

    Geht es darum, welchen Typ die Property haben soll bzw. dass dieser dynamisch sein soll (z.B. immer id, könnte aber String oder Int sein)? Dann würde ich einen generischen typealias im Sorter Protokoll nutzen.


    Das mal so ganz ins Blaue…

    VG