Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Perbezaan antara penerima kaedah dalam bahasa berbeza dan penerima kaedah bahasa Go

Perbezaan antara penerima kaedah dalam bahasa berbeza dan penerima kaedah bahasa Go

王林
王林asal
2024-04-12 14:36:02585semak imbas

Penerima kaedah dalam bahasa Go berbeza daripada dalam bahasa pengaturcaraan lain. Dalam bahasa Go: penerima kaedah terletak dalam tandatangan fungsi, sejurus selepas nama fungsi. Penerima kaedah ialah nilai dan bukannya penunjuk, yang menjadikannya lebih ringan.

Perbezaan antara penerima kaedah dalam bahasa berbeza dan penerima kaedah bahasa Go

Penerima kaedah dalam bahasa berbeza dan penerima kaedah bahasa Go

Dalam pengaturcaraan berorientasikan objek, penerima kaedah membenarkan kami mentakrifkan kaedah yang beroperasi pada objek tertentu. Sintaks dan penggunaan penerima kaedah mungkin berbeza dalam bahasa yang berbeza. Artikel ini akan membincangkan perbezaan antara penerima kaedah dalam bahasa berbeza dan penerima kaedah bahasa Go.

Java

Di Java, penerima kaedah dipanggil kata kunci ini. Ia merujuk kepada objek yang kaedah dipanggil: this 关键字。它引用调用该方法的对象:

class MyClass {
    public void myMethod() {
        System.out.println(this); // 打印调用该方法的对象
    }
}

Python

在 Python 中,方法接收器是方法的第一个参数。它通常称为 self

class MyClass:
    def my_method(self):
        print(self)  # 打印调用该方法的对象

C++

在 C++ 中,方法接收器作为隐式第一个参数传递给方法。它使用 this

class MyClass {
public:
    void myMethod() {
        std::cout << this;  // 打印调用该方法的对象
    }
};

Python

Dalam Python, penerima kaedah ialah parameter pertama kaedah. Ia sering dipanggil self:

type MyClass struct {
    // 字段
}

func (myClass MyClass) myMethod() {
    // 实现
}

C++

Dalam C++, penerima kaedah dihantar kepada kaedah sebagai hujah pertama yang tersirat. Ia diakses menggunakan kata kunci ini:

type Person struct {
    Name string
}

func (p Person) Greet() {
    fmt.Printf("Hello, %s!\n", p.Name)
}

Go

Penerima kaedah bahasa Go adalah jauh berbeza daripada bahasa lain. Penerima kaedah terletak dalam tandatangan fungsi, sejurus selepas nama fungsi:

class Person:
    def __init__(self, name):
        self.name = name

    def greet(self):
        print("Hello, {}!".format(self.name))

Dalam bahasa Go, penerima kaedah ialah nilai, bukan penunjuk. Ini menjadikan penerima kaedah dalam Go lebih ringan dan mengelakkan semakan penuding nol.

Kes praktikal

Berikut ialah contoh pelaksanaan kaedah yang serupa dalam bahasa Go dan Python:

Go bahasa:

🎜rrreee🎜🎜Python: 🎜🎜🎜🎜🎜🎜🎜 anda boleh lihat dalam bahasa menerima Pembina adalah lebih ringkas kerana ia tidak memerlukan rujukan eksplisit kepada objek. 🎜🎜🎜Kesimpulan (dialih keluar, atas permintaan) 🎜🎜

Atas ialah kandungan terperinci Perbezaan antara penerima kaedah dalam bahasa berbeza dan penerima kaedah bahasa Go. 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