On Tue, Oct 16, 2018 at 3:33 AM alanfo <[email protected]> wrote:
> I would also disallow overloading of the =, :=, <-, ..., [], {}, () and
> yes - equality operators - as well because I believe to do otherwise would
> be very confusing.
>
If overloading [] were disallowed, how would one write a generic function
taking a single argument of type either []int or a user-defined type with
similar behavior, and returning the sum of the elements? Sort of the
marriage of these two functions:
func SumIntSlice(s []int) int {
sum := 0
for _, i := range s {
sum += i
}
return sum
}
type IntList interface {
Len() int
At(int) int
}
func SumIntList(l IntList) int {
sum := 0
for n := 0; n < l.Len(); n++ {
sum += l.At(n)
}
return sum
}
--
You received this message because you are subscribed to the Google Groups
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.