Pengoptimuman Sebaris dalam Go
Tidak seperti bahasa tertentu, Go tidak membenarkan sebaris fungsi eksplisit. Sebaliknya, pengkompil secara dinamik menilai fungsi untuk kemungkinan inlining. Mekanisme ini dibantu oleh pilihan nyahpepijat yang membolehkan pengguna memerhatikan potensi senario sebaris. Walau bagaimanapun, logik yang tepat di sebalik keputusan sebaris pengkompil Go sebahagian besarnya masih tidak didokumenkan.
Pertimbangkan kod berikut, di mana gelung menyulitkan data secara berulang menggunakan fungsi Sulit:
func Encrypt(password []byte) ([]byte, error) { return bcrypt.GenerateFromPassword(password, 13) } for id, data := range someDataSet { newPassword, _ := Encrypt([]byte("generatedSomething")) data["password"] = newPassword someSaveCall(id, data) }
Untuk menyelaraskan dengan berkesan Fungsi penyulitan, pertimbangan berikut hendaklah dibuat:
Atas ialah kandungan terperinci Bagaimana Pengkompil Go Mengendalikan Fungsi Inlining, dan Bagaimana Saya Boleh Mempengaruhinya?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!