5 ms·
as I read it, it's any struct! Not just strings. which is cool.
by jfoutz 2y ago
as I read it, it's any struct! Not just strings. which is cool.
- TheDong 2y agoAny "comparable" struct, which is to say any struct where '==' works. No, you can't override '=='. This will not work for the average struct, and if you do use it, you now no longer can include any, for example `[]byte` fields in the struct or else it will no longer compile. I always find it funny that `string` is comparable, but `[]rune` and `[]byte` are not.
- aatd86 2y agoIt's beczuse string values are immutable so at any point in a program, the result of string variable comparison would be the same. For slice types it's more complex because there is mutability implicit aliasing. And the backing array pointed at may change. I guess the latter should point us toward deep value comparison for slice types since any other comparison would be quite flimsy.