It is pity `func g = othermod.F` were rejected. It could simplify
refactoring.
For example, I've decided to move type and its constructor to other
package. I could easily alias type in its previous place to remain
compatibility, but I have to write ugly wrapper for constructor:
type SomeEntity = otherpackage.SomeEntity
func NewSomeEntity(arg1 Arg1, arg2 Arg2, arg3 Arg3, opts ...Opt)
*SomeEntry {
return otherpackage.SomeEntity(arg1, arg2, opts...)
}
compared to
type SomeEntity = otherpackage.SomeEntity
func NewSomeEntity = otherpackage.NewSomeEntity
среда, 5 декабря 2018 г. в 00:14:42 UTC+3, [email protected]:
> This was considered (or rather, the `func g = f` syntax), but ultimately
> it was decided that the current ways to forward functions are good enough
> :) Either use var, or if you are uncomfortable with having that
> *theoretically* mutable, wrap it directly (it should get inlined, so
> there's no cost apart from writing the wrapper).
>
> On Tue, Dec 4, 2018 at 8:34 PM Liam Breck <[email protected]> wrote:
>
>> I meant this should work
>>
>> https://play.golang.org/p/w6MBzP9RNdH
>>
>> On Tue, Dec 4, 2018, 11:21 AM messju mohr <[email protected]
>> wrote:
>>
>>> Erm, function names may be const, but functions are first class citizen
>>> types and can of course be assigned to variables and be passed around.
>>>
>>> just my 2c
>>>
>>> On Tue, Dec 04, 2018 at 10:27:19AM -0800, Liam Breck wrote:
>>> > Ah yes, var works. But it should be const, since func names aren't
>>> > variables.
>>> > On Tue, Dec 4, 2018, 5:40 AM Axel Wagner <[1]
>>> [email protected]
>>> > wrote:
>>> >
>>> > You can use
>>> > var Gi = g.G(int)
>>> > or you can use
>>> > func Gi(i int) error { return g.G(i) }
>>> > for the same effect. Which is pretty much the reason why
>>> > alias-declarations ended up only be added for types - all other
>>> > declarations can already be emulated sufficiently well. :)
>>> > On Mon, Dec 3, 2018 at 11:39 PM Liam Breck <[2]
>>> [email protected]>
>>> > wrote:
>>> >
>>> > Type aliases appear in the contracts draft design. Has anyone
>>> > suggested alias declarations for generic functions? This would
>>> > simplify syntax for callers...
>>> > package g
>>> > func G(type T)(i T) error { ... }
>>> > ---
>>> > package main
>>> > import "g"
>>> > func Gi g.G(int) // declare alias
>>> > func f() {
>>> > Gi(1)
>>> > }
>>> >
>>> > --
>>> > 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 [3][email protected].
>>> > For more options, visit [4]https://groups.google.com/d/optout.
>>> >
>>> > --
>>> > 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 [5][email protected].
>>> > For more options, visit [6]https://groups.google.com/d/optout.
>>> >
>>> > References
>>> >
>>> > Visible links
>>> > 1. mailto:[email protected]
>>> > 2. mailto:[email protected]
>>> > 3. mailto:[email protected]
>>> > 4. https://groups.google.com/d/optout
>>> > 5. mailto:[email protected]
>>> > 6. https://groups.google.com/d/optout
>>>
>> --
>> 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.
>>
>
--
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 on the web visit
https://groups.google.com/d/msgid/golang-nuts/9dfb44a1-478a-4018-b8eb-b7df40013e70n%40googlegroups.com.