Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Mari kita bercakap tentang cara menggunakan kaedah menghiris golang

Mari kita bercakap tentang cara menggunakan kaedah menghiris golang

PHPz
PHPzasal
2023-03-29 11:26:34589semak imbas

Slices dalam bahasa Go (golang) ialah tatasusunan dinamik yang boleh berkembang dan mengecut secara automatik. Kepingan ialah struktur yang merangkum penuding kepada tatasusunan asas, bilangan elemen dan kapasiti.

Memandangkan pelaksanaan penghirisan adalah berdasarkan tatasusunan pendasar, operasi penghirisan sebahagian besarnya tertakluk kepada tatasusunan pendasar. Dalam artikel ini, kita akan membincangkan beberapa kaedah penghirisan biasa dan penggunaannya.

  1. Mencipta Slice

Mula-mula, kita perlu mencipta kepingan. Terdapat dua cara untuk membuat kepingan: menggunakan fungsi buat dan pengisytiharan langsung.

Gunakan fungsi make:

a := make([]int, 5) //Buat kepingan integer dengan panjang 5

Fungsi make menerima dua parameter : Parameter pertama ialah jenis elemen kepingan, dan parameter kedua ialah panjang kepingan. Jika anda ingin menentukan kapasiti, anda boleh lulus parameter ketiga:

b := make([]string, 5, 10) //Buat kepingan rentetan dengan panjang 5 dan kapasiti 10

Pengisytiharan langsung:

c := []int{1, 2, 3, 4, 5} //Buat hirisan integer yang mengandungi 5 elemen

Nota, gunakan ini Panjang dan kapasiti kepingan yang dibuat dengan cara ini adalah sama.

  1. Mengakses kepingan

Mengakses elemen kepingan mengikut indeks adalah sama seperti tatasusunan. Sebagai contoh, untuk mengakses elemen pertama, anda akan melakukan sesuatu seperti ini:

fmt.Println(c[0])

  1. Pengubahsuaian kepingan

Memandangkan kepingan boleh berubah, kita boleh mengubah suai nilai elemen di dalamnya dengan indeks:

c[0] = 10 //Tukar elemen pertama kepada 10

  1. kepingan Tambah

Gunakan kaedah tambah hirisan untuk menambah elemen pada kepingan. Jika kapasiti hirisan tidak cukup besar untuk menampung semua elemen, ia akan berkembang secara automatik.

Sebagai contoh, kita boleh menambah elemen pada hujung kepingan menggunakan:

c = append(c, 6, 7, 8) //Tambah 3 elemen pada hujung kepingan

Apabila menambah satu elemen, kita boleh menulis seperti ini:

c = append(c, 9) //Tambah elemen di hujung kepingan

  1. Salinan kepingan

Kepingan boleh disalin menggunakan fungsi salin. Parameter pertama fungsi salin ialah kepingan sasaran, dan parameter kedua ialah kepingan sumber.

Contohnya:

d := make([]int, len(c))
copy(d, c)

  1. Pintasan hirisan

Gunakan bentuk [start:end] hirisan untuk memintas hirisan dan dapatkan hirisan baharu. mula mewakili kedudukan permulaan (selang tertutup) untuk dipintas, dan hujung mewakili kedudukan akhir (selang terbuka).

Contohnya:

e := c[2:5] //Memintas kepingan yang mengandungi elemen ketiga hingga kelima

Jika permulaan ditinggalkan, lalai ialah 0 ;Jika hujung ditinggalkan, ia lalai kepada panjang hirisan.

  1. Pemadaman kepingan

Tiada cara langsung untuk memadamkan elemen kepingan dalam Go. Walau bagaimanapun, kita boleh memadamkan elemen secara tidak langsung dengan membina semula kepingan baharu.

Sebagai contoh, kita boleh memadamkan elemen ketiga menggunakan kod berikut:

f := append(c[:2], c[3:]...)

Dengan cara ini, f ialah kepingan baharu di mana elemen ketiga telah dialih keluar.

Ringkasan

Menghiris ialah jenis data yang sangat berkuasa, yang boleh membantu kami mengendalikan data dengan lebih mudah. Dalam artikel ini, kami memperkenalkan beberapa kaedah operasi hirisan biasa, termasuk penciptaan, akses, pengubahsuaian, tambah, salin, pemintasan dan pemadaman. Jika anda ingin menguasai penghirisan dalam bahasa Go, anda boleh mendalami pemahaman anda dengan membaca dokumentasi rasmi.

Atas ialah kandungan terperinci Mari kita bercakap tentang cara menggunakan kaedah menghiris golang. 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