Bagaimana untuk melampirkan fungsi pada struct dalam Golang

王林
Lepaskan: 2024-08-06 02:58:52
asal
1046 orang telah melayarinya

How to to attach a function to a struct in Golang

Jika anda datang dari bahasa lain seperti php, C# , Dart dan lain-lain, anda sudah biasa membuat kaedah untuk kelas. Biasanya kaedah ini melaksanakan satu tindakan untuk kelas tersebut. Dalam bahasa OOP sedemikian, anda mencipta kaedah sedemikian dalam skop kelas seperti :

class ClassName{
....
 function functionName(){
  // perform action
}
}
Salin selepas log masuk

In go anda mula-mula mencipta struct kemudian anda boleh melampirkan penerima untuk melakukan tindakan khusus untuk struct. Sebagai contoh, kami mempunyai sebagai Pengguna model yang kami mahu ia mempunyai kaedah yang mengembalikan nama penuh pengguna yang kami ada seperti yang ditunjukkan di bawah:

type myUser struct{
 FirstName string
LastName string
PostalCode string
DateOfBirth time.Time
}
Salin selepas log masuk

Di atas kami baru sahaja mencipta jenis Pengguna dengan pelbagai atribut seperti FirstName, LastName .... , kami ingin mempunyai kaedah yang melakukan beberapa tindakan khas untuk jenis 'myUser' dalam kes ini hanya kembalikan borang nama penuh atribut FirstName,LastName yang dinyatakan.

Kita boleh mencipta nama penuh fungsi penerima yang mengembalikan rentetan.

func (user *myUser) fullname() (string, string){
   return user.FirstName ,user.LastName
}

Salin selepas log masuk

Bagaimana kita boleh menggunakan ini? kita boleh menguji ini secara langsung dalam fungsi utama hanya untuk melihat cara ia berfungsi:

func main() {

    user := myUser{
        FirstName: "Felix",
        LastName:  "chi",
    }
    fmt.Println(user.fullname())

}
Salin selepas log masuk

Oleh itu kami telah berjaya mencipta kaedah penerima untuk struct myUser kami. Ode penuh akan seperti:

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())

}
Salin selepas log masuk

Jadi apa seterusnya? teruskan dan tampal kod pada https://go.dev/play/ untuk melihat cara ia benar-benar berfungsi. Lihat dalam siaran anda yang seterusnya...!!!!

Atas ialah kandungan terperinci Bagaimana untuk melampirkan fungsi pada struct dalam Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan