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.

Reply via email to