如果您来自其他语言,例如 php、c#、dart 等,您会熟悉为类创建方法。通常这些方法为该类实现一个操作。在此类 oop 语言中,您可以在类范围内创建此类方法,例如:
class classname{ .... function functionname(){ // perform action } }
登录后复制
在 go 中,您首先创建一个结构体,然后您可以附加接收器来对该结构体执行特定操作。例如,我们有一个模型 user,我们希望它有一个返回用户全名的方法,如下所示:
type myuser struct{ firstname string lastname string postalcode string dateofbirth time.time }
登录后复制
上面我们刚刚创建了一个具有各种属性(例如 firstname、lastname ….)的 user 类型,我们希望有一个方法可以为 ‘myuser’ 类型执行一些特殊操作,在本例中只需返回所述的全名属性 名字,姓氏.
我们可以创建一个返回字符串的接收函数全名。
func (user *myuser) fullname() (string, string){ return user.firstname ,user.lastname }
登录后复制
我们如何使用这个?我们可以直接在主函数中测试它,看看它是如何工作的:
func main() { user := myuser{ firstname: "felix", lastname: "chi", } fmt.println(user.fullname()) }
登录后复制
因此,我们已经成功地为 myuser 结构创建了一个接收器方法。完整的颂歌看起来像这样:
package main import ( "fmt" "time" ) type myUser struct { FirstName string LastName string PostalCode string DateOfBirth time.Time } func (user *myUser) fullname() (string, string) { return user.FirstName, user.LastName } func main() { user := myUser{ FirstName: "Felix", LastName: "chi", } fmt.Println(user.fullname()) }
登录后复制
那么接下来呢?继续将代码粘贴到 https://go.dev/play/ 上,看看它是如何真正工作的。请在我的下一篇文章中看到…!!!!!
以上就是如何在 Golang 中将函数附加到结构体的详细内容,更多请关注叮当号网其它相关文章!
文章来自互联网,只做分享使用。发布者:代号邱小姐,转转请注明出处:https://www.dingdanghao.com/article/684799.html