Mengoptimumkan Kod untuk Gelagat Slice Koleksi Biasa
Dalam konteks bekerja dengan koleksi selang separuh terbuka, seperti jam dan titik, kebimbangan utama ialah mencari selang penutup untuk masa tertentu untuk kedua-dua jenis selang ini memerlukan cara yang cekap untuk menentukan tingkah laku biasa untuk ini koleksi.
Pertimbangan Penukaran
Satu pendekatan melibatkan penukaran satu jenis kepingan kepada yang lain Walau bagaimanapun, kaedah yang disyorkan adalah untuk mencipta kepingan baharu dan menukar setiap item secara eksplisit. Sebagai contoh, untuk menukar sepotong ClockIntervals menjadi HalfOpenIntervals:
func ToIntervalsFromClockIntervals(clockIntervals []ClockInterval) HalfOpenIntervals { intervals := make(HalfOpenIntervals, 0, len(clockIntervals)) for _, clockInterval := range clockIntervals { intervals = append(intervals, clockInterval) } return intervals }
Memanfaatkan Komposisi
Pendekatan alternatif ialah menggunakan gubahan untuk mengelakkan kod pendua. Cipta struktur asas BasicInterval, yang mengandungi pelaksanaan fungsi pengisihan dan GetEnclosingInterval. ClockIntervals dan PeriodIntervals mewarisi BasicInterval dan mempunyai kaedah kemudahan yang menghala ke bahagian dalaman.
Mengelakkan Penggeneralisasian Berlebihan
Adalah penting untuk ambil perhatian bahawa pengitlak yang berlebihan boleh memperkenalkan kerumitan dan mengurangkan kebolehbacaan kod dalam Go Dalam sesetengah kes, mungkin lebih pragmatik untuk menerima beberapa pertindihan kod untuk pelbagai jenis Pendekatan ini selalunya boleh membawa kepada kod yang lebih bersih dan boleh diselenggara dalam jangka masa panjang.
Atas ialah kandungan terperinci Bagaimanakah Kami Boleh Mengoptimumkan Kod Go untuk Mencari Selang Terlampir dalam Jenis Koleksi Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!