Go supports nested struct inside function but no nested function except lambda, does it mean there is no way to define a nested class inside function?
func f() {
// nested struct Cls inside f
type Cls struct {
...
}
// try bounding foo to Cls but fail
func (c *Cls) foo() {
...
}
}
Thus it feels a bit strange that class is weaken inside function.
Any hints?
Actually it doesn't matter if you want to declare the function with or without a receiver: nesting functions in Go are not allowed.
Although you can use Function literals to achieve something like this:
Here we created a variable
foo
which has a function type and it is delcared inside another functionf
. Calling the "outer" functionf
outputs:"Hello World!"
as expected.Try it on Go Playground.