Personally, I mostly like this. MyType.Foo currently has no meaning if Foo is a field and it is not a bad syntax for this concept. If I objected to it, it would be because I'm not sure how frequently it is needed (the main usecase I would have is sorting by a field).
I think it makes sense to file this as a language change proposal (though it is probably a relatively low priority change, so I'm not sure we'd do it any time soon). On Fri, 7 Aug 2026 at 19:09, Pierre Durand <[email protected]> wrote: > Hello > > I just had an idea about struct field accessor function. > > type MyType struct { > Foo int > } > > Currently if we use `MyType.Foo`, it's a compile error: "type MyType has > no method Foo". > > My idea is to add syntactic sugar on this expression. > It would be a function with 1 parameter (type of the struct), and 1 > returned value (type is pointer to the field type). > So we don't need to define a closure. > > It would allow to write this kind of code: > > func main() { > type MyType struct { > Foo int > } > f := MyType.Foo // Type is: func(MyType) *int > v := MyType{Foo: 123} > i := *f(v) > fmt.Println(i) // Prints: 123 > *f(v) = 456 > fmt.Println(v.Foo) // Prints: 456 > } > > We should also allow to define it on a pointer: f := (*MyStruct).Foo > > I don't remember similar proposal (or maybe I didn't search properly). > WDYT ? > Would it be helpful ? > Should I write a formal proposal ? > > -- > 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]. > To view this discussion visit > https://groups.google.com/d/msgid/golang-nuts/6150ff18-2956-4b2e-be40-7cf95a4207ffn%40googlegroups.com > <https://groups.google.com/d/msgid/golang-nuts/6150ff18-2956-4b2e-be40-7cf95a4207ffn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- 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]. To view this discussion visit https://groups.google.com/d/msgid/golang-nuts/CAEkBMfH_XnHvuFMKgNqtrU%2BtjBdfR5Tv4CmwUQucQ2G4kJverA%40mail.gmail.com.
