首页 > 后端开发 > Golang > 如何在 Golang 中将函数附加到结构体

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

王林
发布: 2024-08-06 02:58:52
原创
1073 人浏览过

How to to attach a function to a struct in 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”类型执行一些特殊操作,在本例中只返回全名形式指定的属性 FirstName,LastName.

我们可以创建一个返回字符串的接收函数全名。

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 中将函数附加到结构体的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板