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

Tinggalkan Komen

Cara Membuang Sisa Pelekat daripada Pakaian: Bertindak dengan Lembut Sebelum Kotoran Kekal Selamanya

Cara Membuang Sisa Pelekat daripada Pakaian: Bertindak dengan Lembut Sebelum Kotoran Kekal Selamanya

Cara membuang sisa pelekat daripada pakaian: daripada menanggalkannya dengan berhati-hati, menggunakan sejuk, air sabun dan pencuci kotoran sehingga ke proses membasuh. Dengan tip untuk gam super, sisa label dan fabrik sensitif.

Membersihkan penapis mesin basuh pinggan mangkuk: panduan mudah untuk mengelakkan sisa dan bau busuk

Membersihkan penapis mesin basuh pinggan mangkuk: panduan mudah untuk mengelakkan sisa dan bau busuk

Pelajari cara membersihkan penapis mesin basuh pinggan mangkuk langkah demi langkah: tanggalkan, bilas, berus, pasang semula, kekerapan dan tanda bahawa pembersihan mudah tidak lagi mencukupi.

Bolehkah Asid Sitrik Digunakan untuk Membersihkan Pelembap Udara? Panduan Langkah Keselamatan dan Amaran Mengikut Jenis

Bolehkah Asid Sitrik Digunakan untuk Membersihkan Pelembap Udara? Panduan Langkah Keselamatan dan Amaran Mengikut Jenis

Panduan membersihkan pelembap udara dengan asid sitrik: kepekatan, perendaman, pembilasan, dan amaran mengikut jenis berdasarkan maklumat rasmi pengeluar. Contoh senario hipotetikal disediakan untuk memudahkan pemahaman prosedur praktikal.

Apa yang Berlaku Jika Penapis Penyaman Udara Tidak Dibersihkan? Risiko Kos Elektrik, Kecekapan dan Kulat serta Cara Memilih Kekerapan Pembersihan

Apa yang Berlaku Jika Penapis Penyaman Udara Tidak Dibersihkan? Risiko Kos Elektrik, Kecekapan dan Kulat serta Cara Memilih Kekerapan Pembersihan

Jika penapis penyaman udara tidak dibersihkan, ia boleh menyebabkan peningkatan kos elektrik, penurunan kecekapan pemanasan dan penyejukan, serta menjadi punca bau dan kulat. Berdasarkan maklumat rasmi pengeluar dan penjimatan tenaga, artikel ini menerangkan kekerapan pembersihan, fungsi pembersihan automatik, dan cara memilih antara pembersihan sendiri atau profesional.

Mencuci beg galas dalam mesin basuh: Bila boleh dan bila lebih baik dielakkan

Mencuci beg galas dalam mesin basuh: Bila boleh dan bila lebih baik dielakkan

Ketahui bila boleh mencuci beg galas dalam mesin basuh, cara membaca label, memilih kitaran dan detergen, melindungi tali dan zip, serta bila lebih baik mencuci tangan.

Cara Membaiki Microsoft Teams Di Mana Boleh Cari Ralat Team

Cara Membaiki Microsoft Teams Di Mana Boleh Cari Ralat Team

Bosan dengan ralat Microsoft Teams Where to Find Team yang mengecewakan? Dapatkan pembetulan langkah demi langkah untuk desktop, web dan mudah alih. Selesaikannya dengan cepat dengan panduan pakar kami—tiada kemahiran teknikal diperlukan!

Cara Membaiki Ralat Bantuan Cara Menggunakan Microsoft Teams

Cara Membaiki Ralat Bantuan Cara Menggunakan Microsoft Teams

Bosan dengan Ralat Bantuan Microsoft Teams yang mengecewakan yang menyekat aliran kerja anda? Dapatkan pembetulan langkah demi langkah yang berfungsi pada versi terkini. Kosongkan cache, kemas kini dan banyak lagi—tiada kemahiran teknikal diperlukan!

Cara Membaiki Ralat Log Masuk Microsoft Teams pada Chromebook

Cara Membaiki Ralat Log Masuk Microsoft Teams pada Chromebook

Menghadapi ralat log masuk Microsoft Teams pada Chromebook? Temui penyelesaian langkah demi langkah untuk menyelesaikan masalah log masuk dengan cepat. Kosongkan cache, kemas kini aplikasi dan banyak lagi untuk kerja berpasukan yang lancar. Berfungsi pada OS Chrome terkini!

Menyelesaikan Masalah Kelewatan Persidangan Video Microsoft Teams pada Wi-Fi

Menyelesaikan Masalah Kelewatan Persidangan Video Microsoft Teams pada Wi-Fi

Bergelut dengan kelewatan persidangan video Microsoft Teams semasa menggunakan Wi-Fi? Panduan penyelesaian masalah muktamad ini memberikan penyelesaian pantas, petua lanjutan dan pengoptimuman Wi-Fi untuk memulihkan panggilan video yang jelas serta-merta.

Di Mana Boleh Cari Kod QR Microsoft Teams untuk Log Masuk Mudah Alih Pantas

Di Mana Boleh Cari Kod QR Microsoft Teams untuk Log Masuk Mudah Alih Pantas

Ketahui dengan tepat di mana untuk mencari Kod QR Microsoft Teams untuk log masuk mudah alih yang sangat pantas. Panduan langkah demi langkah dengan visual untuk memudahkan anda berhubung dalam beberapa saat—tiada kata laluan diperlukan!