Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melampirkan fungsi pada struct dalam Golang

Bagaimana untuk melampirkan fungsi pada struct dalam Golang

王林
王林asal
2024-08-06 02:58:521029semak imbas

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
}
}

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
}

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
}

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

}

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

}

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!

Kenyataan:
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