Kaedah di Golang

Kaedah dalam Golang  adalah seperti fungsi tetapi dengan satu perbezaan utama: mereka mempunyai hujah penerima , yang membenarkan akses kepada sifat penerima . Penerima boleh terdiri daripada jenis struct atau bukan struct, tetapi kedua-duanya mestilah dalam pakej yang sama. Tidak mustahil untuk mencipta kaedah untuk jenis yang ditakrifkan dalam pakej lain, termasuk jenis terbina dalam seperti int atau rentetan ; Jika tidak, pengkompil akan melaporkan ralat.

Kaedah di Golang

Contohnya:

package main

import "fmt"

// Định nghĩa một struct
type person struct {
    name string
    age  int
}

// Định nghĩa một phương thức với struct receiver
func (p person) display() {
    fmt.Println("Name:", p.name)
    fmt.Println("Age:", p.age)
}

func main() {
    // Tạo một phiên bản của struct
    a := person{name: "a", age: 25}
    
    // Gọi phương thức
    a.display()
}

Keputusan:

Name: a
Age: 25

Sintaks

func(receiver_name Type)  method_name(parameter_list) (return_type) { 
// Code
}

Penerima: Boleh diakses menggunakan kaedah ini.

Kaedah dengan Penerima jenis struct

Dalam Go, anda boleh menentukan kaedah di mana penerima adalah jenis struct. Penerima boleh diakses di dalam kaedah. Contoh sebelumnya menggambarkan pendekatan ini dengan struktur jenis Penerima.

Kaedah dengan Penerima bukan jenis struct

Go juga membenarkan kaedah mempunyai penerima bukan struktur, selagi jenis penerima dan definisi kaedah berada dalam pakej yang sama. Anda tidak boleh menentukan kaedah dengan jenis penerima daripada pakej lain (cth. int, rentetan).

Contohnya:

package main

import "fmt"

// Tạo một kiểu tùy biến dựa trên int
type number int

// Định nghĩa một phương thức với receiver không phải struct
func (n number) square() number {
    return n * n
}

func main() {
    a := number(4)
    b := a.square()

    fmt.Println("Square of", a, "is", b)
}

Keputusan:

Square of 4 is 16

Kaedah dengan penunjuk penerima

Dalam Go, kaedah boleh mempunyai penerima penunjuk. Ini membolehkan perubahan yang dibuat dalam kaedah ditunjukkan dalam pemanggil, yang tidak mungkin dilakukan dengan penerima nilai.

Sintaks:

func (p *Type) method_name(...Type) Type {    // Code}

Contohnya:

package main

import "fmt"

// Defining a struct
type person struct {
    name string
}

// Phương thức với receiver pointer để chỉnh sửa dữ liệu
func (p *person) changeName(newName string) {
    p.name = newName
}

func main() {
    a := person{name: "a"}
    
    fmt.Println("Before:", a.name)
    
    // Gọi phương thức này để thay đổi tên
    a.changeName("b")
    
    fmt.Println("After:", a.name)
}

Keputusan:

Before: a
After: b

Kaedah menerima kedua-dua penunjuk dan nilai

Tidak seperti fungsi, kaedah Go boleh menerima kedua-dua penerima nilai dan penunjuk. Anda boleh menghantar petunjuk atau nilai dan kaedah akan dikendalikan dengan sewajarnya.

Contohnya:

package main
import "fmt"

type person struct {
    name string
}
// Phương thức với receiver pointer
func (p *person) updateName(newName string) {
    p.name = newName
}

// Phương thức với receiver value 
func (p person) showName() {
    fmt.Println("Name:", p.name)
}

func main() {
    a := person{name: "a"}
    
    // Gọi phương thức con trỏ cùng giá trị
    a.updateName("b")
    fmt.Println("After pointer method:", a.name)
    
    // Gọi phương thức giá trị với con trỏ
    (&a).showName()
}

Keputusan:

After pointer method: b
Name: b

Perbezaan antara kaedah dan fungsi

Kaedah rahang
Mengandungi penerima Tidak mengandungi penerima
Adalah mungkin untuk menentukan kaedah dengan nama yang sama tetapi jenis yang berbeza. Fungsi dengan nama yang sama tetapi jenis yang berbeza tidak dibenarkan.
Tidak boleh digunakan sebagai superlatif Boleh digunakan sebagai objek superordinat
Sign up and earn $1000 a day ⋙

Leave a Comment

Menamakan parameter pulangan di Golang

Menamakan parameter pulangan di Golang

Di Golang, parameter pulangan dinamakan sering dirujuk sebagai parameter bernama. Golang membenarkan menamakan parameter pemulangan atau hasil fungsi dalam tandatangan atau definisi fungsi.

Arahan untuk menetapkan kertas dinding sembang pada WhatsApp

Arahan untuk menetapkan kertas dinding sembang pada WhatsApp

WhatsApp mempunyai ciri penukar kertas dinding sembang, membolehkan pengguna menetapkan tema sembang pada WhatsApp. Pengguna akan dapat memilih daripada 30 latar belakang berbeza untuk sembang mereka, atau menggunakan imej peribadi mereka sebagai latar belakang sembang di WhatsApp.

Apakah fail FLV? Bagaimana untuk membuka fail FLV pada komputer?

Apakah fail FLV? Bagaimana untuk membuka fail FLV pada komputer?

Anda sering memuat turun video dari Internet ke komputer anda untuk menonton di luar talian dan sering melihat fail FLV. Adakah anda bergelut untuk memikirkan cara membukanya? Hari ini, kami akan memberikan maklumat tentang fail video FLV untuk anda dalam artikel di bawah.

Bagaimana untuk melihat arkib berita pada telefon Facebook, komputer

Bagaimana untuk melihat arkib berita pada telefon Facebook, komputer

Untuk menyemak berita Facebook yang disiarkan, anda perlu mengaktifkan arkib berita di Facebook. Semua mesej Facebook selepas menghidupkan mod arkib akan disimpan dalam arkib untuk anda semak bila-bila masa yang anda perlukan.

Kod VNG MU Luc Dia terkini dan cara menebus kod

Kod VNG MU Luc Dia terkini dan cara menebus kod

Anda boleh menukar kod permainan MU Luc Dia VNG untuk Zen dan mata wang lain.

10 aplikasi yang sangat diperlukan untuk pencinta buku

10 aplikasi yang sangat diperlukan untuk pencinta buku

Hanya kerana anda tidak mempunyai buku pada anda tidak bermakna anda perlu berhenti membaca. Apa yang anda perlukan ialah telefon anda untuk mencuba apl media sosial yang didedikasikan untuk peminat buku dan mencari buku seterusnya yang ingin anda baca.

Ketahui Tentang Spotify Connect: Ciri Spotify yang Memaksa Pengguna Berhenti dari YouTube Music

Ketahui Tentang Spotify Connect: Ciri Spotify yang Memaksa Pengguna Berhenti dari YouTube Music

Keupayaan untuk mengawal muzik dimainkan pada satu peranti daripada yang lain adalah ciri yang dipandang rendah. YouTube Music tidak mempunyai ciri ini — dan itu memaksa orang ramai beralih ke Spotify.

Cara Membuat Bola Salji Meletup di Minecraft Bedrock & Java Editon

Cara Membuat Bola Salji Meletup di Minecraft Bedrock & Java Editon

Perintah Minecraft membolehkan pemain mencipta banyak kesan menarik dan satu pilihan yang menarik ialah membuat bola salji meletup. Begini cara membuat bola salji yang meletup di Minecraft.

Adakah komputer anda mempunyai NPU? Berikut ialah cara untuk menyemak

Adakah komputer anda mempunyai NPU? Berikut ialah cara untuk menyemak

Pada Windows 11, anda boleh menyemak dengan cepat sama ada komputer anda mempunyai NPU (Unit Pemprosesan Neural), melalui 3 cara yang sangat mudah.

Adakah mod Hibernate tidak baik untuk PC?

Adakah mod Hibernate tidak baik untuk PC?

Mod hibernate dilahirkan kerana keperluan untuk memastikan komputer sentiasa aktif 24/7 tanpa mahu menghabiskan bateri atau memastikan sistem tidak terjejas oleh kegagalan kuasa, tidak seperti kes mod Tidur.

Arahan untuk menambah kalendar Euro 2024 pada iPhone

Arahan untuk menambah kalendar Euro 2024 pada iPhone

Menambah kalendar Euro 2024 pada iPhone membantu pengguna mengikuti perlawanan dengan mudah dalam rangka kerja Euro 2024, kejohanan bola sepak dengan perlawanan yang menarik.

Alibaba Memperkenalkan QwQ-32b, Pesaing Layak untuk DeepSeek

Alibaba Memperkenalkan QwQ-32b, Pesaing Layak untuk DeepSeek

Sama ada dakwaan Alibaba akan menjadi kenyataan masih belum dapat dilihat, tetapi nampaknya ChatGPT dan DeepSeek kini mempunyai pesaing baharu yang layak.

Ringkasan maklumat tentang Samsung One UI 7

Ringkasan maklumat tentang Samsung One UI 7

Telefon Samsung Galaxy yang menjalankan One UI 7.0 akan lebih selamat dengan Mod Lockdown, menghalang serangan tanpa kebenaran.

Bagaimana untuk mencipta kesan poster untuk foto dalam Photoshop

Bagaimana untuk mencipta kesan poster untuk foto dalam Photoshop

Tambahkan kesan poster yang cepat dan mudah pada imej anda menggunakan Photoshop untuk mencipta semula rupa klasik poster yang dicetak dengan warna dakwat terhad.

Bagaimana untuk bertukar antara Outlook lama dan Outlook baharu

Bagaimana untuk bertukar antara Outlook lama dan Outlook baharu

Bukan semua orang biasa dengan antara muka Outlook baharu dan mahu kembali ke Outlook lama untuk menggunakan ciri penuh dan lebih banyak penyesuaian pada Outlook. Berikut ialah arahan untuk bertukar antara Outlook lama dan Outlook baharu.