• akkajdh999@programming.dev
    link
    fedilink
    arrow-up
    21
    ·
    10 days ago

    In Go “==” operator works for everything by default, I like it more:

    type A struct {
    	Name string
    	Quality int
    }
    func main() {
    	var x A
    	var y A
    	fmt.Printf("%v", x == y)
    }
    
    

    (if all you want is to compare all corresponding fields which you usually want)

    • Ephera@lemmy.ml
      link
      fedilink
      arrow-up
      4
      ·
      9 days ago

      Yeah, I came to Rust from Scala and Kotlin, where equality is default-implemented (for case class and data class respectively, which is basically all we ever used), so this meme surprised me a bit.

      I do actually like that you can decide a type cannot be compared, because sometimes it really just doesn’t make sense. How would you compare two HTTP clients, for example? But yeah, it certainly is a choice one can disagree with.