"any" Keyword and Existential types in Swift

แชร์
ฝัง

ความคิดเห็น • 33

  • @AlexPeresedov
    @AlexPeresedov 2 ปีที่แล้ว +6

    It is so rare when a tutorial is made with so readable examples so I can watch it even on my phone. Thank you!

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว

      Thank you very much ☺️

  • @tundsdev
    @tundsdev 2 ปีที่แล้ว +14

    Great video, love the animations and clear explanation

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว +2

      Thank you very much 😄

  • @ЭдуардЕленский-н8ч
    @ЭдуардЕленский-н8ч ปีที่แล้ว +2

    In WWDC22 on this topic the ppl were saying easy rule: better use some first and if compiler doesn’t like it change to any. I guess in ur examples if Animal doesn’t have Self or associated requirements then u can move to some (so its kinda lightweights the function signature in this case in comparison with generic variant)

  • @indomitabletr1834
    @indomitabletr1834 ปีที่แล้ว

    You really know what is going on at memory, i am appreciated

  • @alfredohdev
    @alfredohdev 2 ปีที่แล้ว

    Great way to explain any keyword Pitt! Great video

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว

      Thank you very much Jesus! 😊

  • @Cerezo074
    @Cerezo074 7 หลายเดือนก่อน

    Thanks for your explanation, pretty clear sir!!!!

  • @TheScrinn
    @TheScrinn หลายเดือนก่อน

    Nice and clear, thanks

  • @FredWhosDead
    @FredWhosDead 2 ปีที่แล้ว

    Great video Pete!

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว

      Thank you very much Ed! :D

  • @markvllar
    @markvllar 2 ปีที่แล้ว

    So adding the any keyword will not resolve the performance implications that you’ve talked about?

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว

      Hi Mark, No, it just explicitly mark the usage of an existential type, that’s it. 👍

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว

      Hi @Hitesh Agarwal, short answer is yes, but also this is to clearly distinguish between opaque types vs existential types.

  • @theflyingsolo
    @theflyingsolo 2 ปีที่แล้ว

    I'm glad I found your channel from LinkedIn! Great content, these higher level concepts are so good to know but might get missed by the algorithm. Everyone boost!

  • @filipvabrousek6900
    @filipvabrousek6900 2 ปีที่แล้ว

    Well explained! Many thanks!

  • @KFrench1123
    @KFrench1123 ปีที่แล้ว

    Well done! Thank you :)

  • @salmansiddiqui9522
    @salmansiddiqui9522 2 ปีที่แล้ว

    Why are we using any if we dont have any performance ? or just to tell compiler that its existential type.

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว +1

      Hi Salman, that’s a good question!. This is to make a clear distinction between generic constraints and existential types. I recommend you to check the proposal discussion. I left a link in the description 👍

  • @blaze9590
    @blaze9590 2 ปีที่แล้ว +2

    i think it's witness table in this case and not vTable

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว

      What’s that Blaze? 😲

    • @blaze9590
      @blaze9590 2 ปีที่แล้ว +2

      @@swiftandtips witness table is basically what’s used in dynamic lookup of methods/properties for existential types(protocols). Apple engineers talked about it in wwdc 2016 on performance.
      Vtable on the other hand is what’s used for classes that support inheritance/polymorphism/dynamic dispatch.

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว

      I didn’t remember talk. Thanks for the explanation!

  • @cil7ea
    @cil7ea 2 ปีที่แล้ว

    love the explanation!

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว

      Thank you very much! 😊

  • @byaruhaf
    @byaruhaf 2 ปีที่แล้ว

    is there a way to trigger the warning in swift 5.6?

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว +1

      Hi Franklin, that's a good question! I tried using frontend flags in Xcode (enable-explicit-existential-types) but it doesn't work.
      I will investigate and let you know if I got something. Cheers!

    • @ЭдуардЕленский-н8ч
      @ЭдуардЕленский-н8ч ปีที่แล้ว +1

      The easy way I can tell right now is Swiftlint rule

    • @byaruhaf
      @byaruhaf ปีที่แล้ว

      @@ЭдуардЕленский-н8ч Thanks which rule is it?

  • @Mahadev-x7u
    @Mahadev-x7u 2 ปีที่แล้ว +1

    Thank you... Can you show more real examples?

    • @swiftandtips
      @swiftandtips  2 ปีที่แล้ว +1

      Hi Andrej, just use it every time you declare a protocol type in your code, cheers!