卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章71541本站已运行4227

如何在 Golang 中将函数附加到结构体

如何在 golang 中将函数附加到结构体

如果您来自其他语言,例如 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框架进行性能监控?
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏