Sind sie gleich?

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

  • Sind sie gleich?

    Ich möchte wissen ob ein Struct ein bestimmter Struct ist.
    Wie gehts?

    Quellcode

    1. import Foundation
    2. protocol ParameterBase {}
    3. struct ParameterA: ParameterBase {
    4. private var currency: Array<UInt8> = [0x09, 0x78]
    5. }
    6. struct PrefixedParameter<T: ParameterBase>: ParameterBase {
    7. private var prefix: UInt8
    8. var subParameter: T
    9. init(prefix: UInt8, subParameter: T) {
    10. self.prefix = prefix;
    11. self.subParameter = subParameter;
    12. }
    13. }
    14. let paramA = ParameterA()
    15. let pp = PrefixedParameter(prefix: 7, subParameter: paramA)
    16. let dict: Dictionary<String, ParameterBase> = ["test": pp]
    17. let param = dict["test"]!
    18. if param == PrefixedParameter {
    19. }
    Alles anzeigen
    Man macht einfach solange irgendwelche Dinge, bis man tot ist.
    Und dann bekommen die anderen Kuchen.
  • Osxer schrieb:

    Hey,

    nur damit ich das richtig verstehe: du willst wissen, ob `param` ein `ParameterA` ist, korrekt? In diesem Fall würde ich das wie folgt machen:


    Quellcode

    1. if param is PrefixedParameter<ParameterA> {
    2. print("Param is ParameterA")
    3. }
    LG
    Fast richtig.
    ich möchte wissen ob param ein PrefixedParameter<T: ParameterBase> ist. Das geht aber nicht.
    param könnte auch PrefixedParameter<ParameterB> oder PrefixedParameter<ParameterC> oder irgendwas sein.
    Das nächste Problem ist der Downcast. Der klappt bei Generics auch nicht.
    Man macht einfach solange irgendwelche Dinge, bis man tot ist.
    Und dann bekommen die anderen Kuchen.