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.

Reply via email to