只允许传递函数指针,不允许传递值



我想允许pass-to-func仅指向结构的指针,限制值。有可能吗?

我想做的事:

Foo(&Bar{}) // allowed
Foo(Bar{}) // IDE/compilation error

事实上,我使用的是像func Foo(bar any)这样的签名,它允许向函数传递任何接口和类型,当然,在某些情况下,它可能会导致问题。

可以传递给这个函数的类型数量应该不受限制,我不想使用特定的接口等。也许这可以用泛型来实现?但我不知道如何正确地做。

我用的是围棋1.18。

是的,你可以使用这样的泛型:

func Foo[T any](t *T){
…
}

相关内容

最新更新