Adakah Pembolehubah Go Ditimpa Kerana Salah Faham Slice?

Mary-Kate Olsen
Lepaskan: 2024-10-24 08:09:02
asal
752 orang telah melayarinya

Are Go Variables Being Overwritten Due to Slice Misunderstanding?

Go Pembolehubah Sedang Ditulis Ganti (Pepijat?)

Dalam keadaan ini, isunya terletak pada memahami cara kepingan berfungsi dalam Go. Sekeping terdiri daripada penuding kepada tatasusunan, bersama-sama dengan panjang dan kapasitinya. Apabila menambahkan elemen pada kepingan, ia mula-mula menyemak sama ada memanjangkan kepingan akan melebihi kapasiti tatasusunan asasnya. Jika ya, tatasusunan yang lebih besar diperuntukkan, elemen sedia ada disalin kepadanya, dan kapasiti dikemas kini. Kemudian, elemen baharu ditambahkan pada penghujung tatasusunan dan panjangnya dikemas kini.

Dalam kod anda, anda mempunyai baris berikut:

<code class="go">pathA := append(route, nextA)
pathB := append(route, nextB)</code>
Salin selepas log masuk

Terdapat dua kemungkinan di sini :

  1. Jika len(route) sama dengan cap(route), tatasusunan sandaran baharu akan diperuntukkan dan pathA dan pathB akan mempunyai nilai yang berbeza.
  2. Jika len(route) ialah kurang daripada cap(laluan), laluanA dan laluanB akhirnya akan berkongsi tatasusunan sokongan yang sama. Elemen terakhir dalam tatasusunan ialah nextB, kerana ia dilaksanakan kedua.

Nampaknya kes pertama adalah benar untuk lelaran gelung awal, selepas itu kes kedua berlaku. Isu ini boleh diselesaikan dengan membuat salinan secara manual untuk salah satu laluan ini menggunakan copy() dan make().

Atas ialah kandungan terperinci Adakah Pembolehubah Go Ditimpa Kerana Salah Faham Slice?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!