Rumah >pembangunan bahagian belakang >Golang >Bagaimana Mengendalikan Skop Pembolehubah dengan Betul dalam Pernyataan Bersyarat Go?
Dalam Go, skop pembolehubah dihadkan kepada blok kod di mana ia diisytiharkan. Ini boleh menimbulkan cabaran apabila bekerja dengan pembolehubah yang bergantung pada hasil pernyataan if. Pertimbangkan situasi berikut:
Masalah:
Mencipta pembolehubah dalam pernyataan if dan menggunakannya selepas itu adalah terhad kerana skop pembolehubah terhad kepada blok if.
Contoh Kod:
if len(array1) > len(array2) { new1 := make([]string, 0, len(array1)) // Code using new1 } new2 := make([]string, 0, len(new1)) // Error: new1 out of scope copy(new2, new1)
Cadangan Penyelesaian:
Menggunakan pembolehubah sia-sia untuk menyimpan hasil pernyataan if dan kemudian gunakan nilai itu untuk mengisytiharkan yang diingini pembolehubah.
var pointlessvariable uint if len(array1) > len(array2) { pointlessvariable = len(array1) } else { pointlessvariable = len(array2) } var new1 = make([]string, 0, pointlessvariable) if len(array1) > len(array2) { // Code using new1 } new2 := make([]string, 0, len(new1)) copy(new2, new1)
Penyelesaian yang Lebih Baik:
Isytihar pembolehubah di luar blok if dan gunakan fungsi make dalam pernyataan if untuk memulakannya.
var new1 []string if len(array1) > len(array2) { new1 = make([]string, 0, len(array1)) // Code using new1 } else { new1 = make([]string, 0, len(array2)) // Other code using new1 } new2 := make([]string, 0, len(new1)) copy(new2, new1)
Pendekatan terakhir ini menawarkan penyelesaian yang bersih dan elegan tanpa menggunakan pembolehubah yang mengelirukan atau tidak perlu.
Atas ialah kandungan terperinci Bagaimana Mengendalikan Skop Pembolehubah dengan Betul dalam Pernyataan Bersyarat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!