Mengapa Sintaks Slice dalam Go Mengecualikan Sempadan Tinggi (hi)?
Sintaks hirisan Go s[lo:hi] menentukan julat elemen daripada indeks lo (inklusif) hingga hi-1 (eksklusif). Ini berbeza daripada jangkaan intuitif bahawa hi akan disertakan dalam julat.
Rasional Reka Bentuk
Pilihan penghirisan eksklusif adalah perkara biasa dan menawarkan beberapa kelebihan:
-
Kesederhanaan Aritmetik Penunjuk: Dalam Pergi, kepingan pada dasarnya adalah penunjuk dengan panjang yang berkaitan. Dengan tatasusunan 0-indeks dan penghirisan eksklusif, alamat elemen i hanyalah nilai penuding tambah i.
-
Panjang Tatasusunan yang Mudah: Panjang kepingan juga ialah "titik pisahnya. " Ini bermakna arr[0:len(arr)] bersamaan dengan arr, menjadikannya mudah untuk operasi seperti membahagikan tatasusunan kepada segmen.
-
Indeks Tidak Bertindih: Penghirisan eksklusif memastikan bahawa hirisan berturut-turut meliputi sepenuhnya tatasusunan asal. Ini memudahkan operasi seperti membelah tatasusunan berdasarkan integer bukan berturut-turut.
Sebaliknya, penghirisan inklusif - di mana [lo:hi] termasuk kedua-dua lo dan hi - akan mengakibatkan hirisan bertindih dan merumitkan operasi tertentu .
Atas ialah kandungan terperinci Mengapakah Sintaks Slice Go Mengecualikan Batasan Atas?. 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