Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Untuk menghiris Go, apakah perbezaan antara kepingan dan penghirisan semula penuh kepingan?

Untuk menghiris Go, apakah perbezaan antara kepingan dan penghirisan semula penuh kepingan?

PHPz
PHPzke hadapan
2024-02-14 19:12:10994semak imbas

Untuk menghiris Go, apakah perbezaan antara kepingan dan penghirisan semula penuh kepingan?

editor php Xinyi Dalam bahasa Go, penghirisan ialah tatasusunan dinamik yang boleh dikembangkan secara dinamik mengikut keperluan. Perbezaan antara pengirisan penuh sekeping dan sekeping ialah sekeping semula penuh menghasilkan kepingan baharu yang boleh mempunyai kapasiti dan panjang yang berbeza daripada kepingan asal. Operasi penugasan antara kepingan hanya menyalin rujukan kepingan asal kepada kepingan baharu Bahagian baharu berkongsi struktur penyimpanan tatasusunan asas dengan kepingan asal. Oleh itu, apabila pengubahsuaian dibuat pada kepingan baharu, kepingan asal juga akan terjejas. Ini adalah perbezaan penting antara menghiris dan menghiris semula sepenuhnya kepingan.

Isi soalan

Adakah perbezaan antara hirisan dan hirisan penuh?

Diberi sekeping s:= make([]byte, 4, 4), copy(s[:], "data")copy(s, "data") Adakah terdapat perbezaan?

Adakah dua baris kod ini akan mengeluarkan hasil yang berbeza?

Penyelesaian

Slices in Go mempunyai 3 sifat:

  • Tatasusunan asas
  • Panjang hirisan
  • Kapasiti hirisan

ss[:] Sama dalam semua sifat yang disebutkan di atas.

Go sebenarnya tidak mentakrifkan operasi == untuk hirisan, tetapi == 操作,但是 ss[:] adalah sama dalam erti kata bahawa semua sifat boleh diukur adalah sama.

copy 函数仅关注前 2 个属性,这两个属性在 s 之间是相同的和 s[:].

Atas ialah kandungan terperinci Untuk menghiris Go, apakah perbezaan antara kepingan dan penghirisan semula penuh kepingan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:stackoverflow.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam