Rumah >pembangunan bahagian belakang >Golang >Mengapakah `fmt.Println()` Memilih `Ralat()` Daripada `String()` untuk Jenis Tersuai?
Mengapa Kaedah Ralat() Mengatasi Kaedah String() dalam fmt.Println()
Apabila anda melaksanakan kedua-dua String() dan Ralat () kaedah untuk jenis tersuai, anda mungkin menghadapi situasi di mana fmt.Println() mengutamakan kaedah Ralat() berbanding Kaedah String().
Ini kerana pakej fmt menggunakan hierarki apabila memilih kaedah yang hendak dipanggil untuk memformat objek. Menurut dokumentasi pakej, susunan operasi berikut digunakan:
Memandangkan antara muka ralat diberi kedudukan lebih tinggi daripada antara muka String() dalam hierarki ini, fmt.Println() akan mengutamakan kaedah Ralat() jika kedua-dua kaedah dilaksanakan untuk objek yang diberi. Ini kerana ralat biasanya memerlukan perhatian yang lebih mendesak dan harus dikomunikasikan dengan segera dengan cara yang jelas dan ringkas.
Dalam contoh yang diberikan, jenis Orang melaksanakan kedua-dua kaedah String() dan Ralat(). Walau bagaimanapun, kaedah Ralat() hanya mengembalikan rentetan "Gagal", manakala kaedah String() menyediakan penerangan yang lebih bermaklumat tentang orang itu. Apabila anda mencetak kejadian jenis Orang menggunakan fmt.Println(), anda hanya akan melihat mesej "Gagal" kerana kaedah Ralat() diutamakan berbanding kaedah String() disebabkan oleh hierarki yang disebutkan di atas.
Atas ialah kandungan terperinci Mengapakah `fmt.Println()` Memilih `Ralat()` Daripada `String()` untuk Jenis Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!