Getting Started with Generics in Go

Поділитися
Вставка
  • Опубліковано 22 сер 2024

КОМЕНТАРІ • 33

  • @necroowl3953
    @necroowl3953 2 роки тому +12

    I honestly waited for you to explain how these would be useful in Go. I am not disappointed once again, and you did a great job explaining it with a practical example.
    I want to add that it is important to underline that Generics in Go can only be applied when the logic is exactly the same. Otherwise it is always best to type check the inputs via an empty interface (where specific types follow specific logic). One example is JSON marshaling, which cannot be implemented using generics.
    Thanks for this video, and cheers for giving clarity on this topic.

    • @capythulhu
      @capythulhu 2 роки тому +2

      Generics aren't alternatives to type checking, they work well together. If you were implementing a Power function without generics, for example, you would have to create two functions for numbers in general: floatPower(n float64) and intPower(n int64). If you wanted to make it possible for types of every size, you'd have to create even more functions such as: float32Power(n float32), int8Power(n int8), etc. Or, you could use the empty interface approach, but you would have to treat cases such as power("hello"). That means you would have to either have the possibility of a unexpected behavior or you would have to return an error, so you'd have to check that error _every single time_ you call that function just because it is syntactically possible for the user to send something that's not a number into your function. With Go generics, you can just have a func power[num int8 | int16 | int32 | int64 | float32 | float64](n num) and still perform the type check for different operations, if that's the case.

  • @oussamasethoum1665
    @oussamasethoum1665 2 роки тому +4

    One of the best things you can do a video on is entgo + gqlgen for full backend with graphql

  • @ravi-mo6js
    @ravi-mo6js 2 роки тому +2

    Eeeeexcellent, said Mr. Burns xD

  • @javisartdesign
    @javisartdesign 2 роки тому +3

    Awesome, I think it `s something to expect in a language these days. Since you cannot cast the value anymore if you use any, you cannot create a generic list to store interfaces, string, numbers, etc.. and then extract the values to continue working with them?

  • @sultansheikh6184
    @sultansheikh6184 Рік тому

    One of the best channel for go keep up bro 💪

  • @ThanhNguyen-kt8kj
    @ThanhNguyen-kt8kj 2 роки тому +3

    What is the theme you use for vscode? Thank you so much.

  • @angrysmilex
    @angrysmilex 2 роки тому +2

    Very clear explanation, thanks!

  • @3r1c3
    @3r1c3 2 роки тому +3

    Can someone plz tell me the name of this vscode theme? I love it

  • @codelinx
    @codelinx Рік тому

    Amazing content and explanations.

  • @mirabbos02
    @mirabbos02 2 роки тому +4

    Cool 👍

  • @Somethingsomethinglol
    @Somethingsomethinglol Рік тому

    Great explanation ty

  • @mumk
    @mumk 2 роки тому

    Thanks a lot for the sharing

  • @mwat56
    @mwat56 2 роки тому +4

    Why do I always hear "genetic" (instead of "generic")?

  • @hidayathidayat4469
    @hidayathidayat4469 2 роки тому +1

    hallo everyone. how people implement this without generic?

    • @LopestEmarq
      @LopestEmarq Рік тому

      One function for each type (and yes, some code repetition)

  • @am_0x2a
    @am_0x2a Рік тому

    What sweet VS Code theme is that?!

  • @user-ed4pz1yu8b
    @user-ed4pz1yu8b 2 роки тому +1

    Hi! What colorscheme do you use?

    • @usernameL1
      @usernameL1 2 роки тому

      Would like to know as well!

  • @champfisk5613
    @champfisk5613 2 роки тому +6

    This is nice but I will wait for it to be released in stable

    • @Max-bh8tg
      @Max-bh8tg 2 роки тому +3

      It's been released now!

  • @shuaibolayinka7644
    @shuaibolayinka7644 2 роки тому

    doest this work for custom types?

  • @williamokano
    @williamokano 2 роки тому +1

    Seems more like union types than generics itself

    • @Max-bh8tg
      @Max-bh8tg 2 роки тому +3

      Using the "any" keyword will make it totally generic.

    • @williamokano
      @williamokano 2 роки тому

      @@Max-bh8tg 😂

  • @TroenderTass
    @TroenderTass 2 роки тому

    Well, i've got to say they finally gave people a reason to maybe use go. Up to now, the language has been completly useless