登录
首页 >  Golang >  Go问答

函数参数只接受函数指针而不接受值

来源:stackoverflow

时间:2024-02-10 20:12:23 264浏览 收藏

一分耕耘,一分收获!既然都打开这篇《函数参数只接受函数指针而不接受值》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

我想允许仅传递指向结构的指针,限制值。可能吗?

我想做的事:

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

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

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

我使用的是 go 1.18。


正确答案


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

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

理论要掌握,实操不能落!以上关于《函数参数只接受函数指针而不接受值》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>