Rumah > pembangunan bahagian belakang > Golang > Cara guna hirisan golang

Cara guna hirisan golang

王林
Lepaskan: 2023-05-15 09:42:07
asal
503 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang popular pada masa ini, dan kepingan jenis data terbina dalamnya sangat biasa digunakan. Slice merujuk kepada blok berterusan data dalam ingatan Ia mempunyai ciri-ciri panjang berubah secara dinamik, yang berbeza daripada tatasusunan. Artikel ini akan memperkenalkan secara terperinci cara menggunakan hirisan Golang.

  1. Buat kepingan

Terdapat dua cara untuk membuat kepingan dalam Golang:

(1) Gunakan fungsi make() untuk mencipta kepingan

Fungsi make() ialah fungsi yang digunakan dalam Golang untuk membuat kepingan, peta, saluran, dsb. Apabila menggunakan fungsi make() untuk mencipta hirisan, anda perlu menentukan jenis hirisan, panjang dan kapasiti. Seperti yang ditunjukkan di bawah:

s := make([]int, 5, 10)
Salin selepas log masuk

Kod di atas mencipta kepingan jenis int yang mengandungi 5 elemen dan memperuntukkan ruang storan untuk 10 elemen. Antaranya, panjangnya ialah 5 dan kapasitinya ialah 10.

(2) Gunakan mod literal untuk mencipta kepingan

Dalam mod literal, anda boleh memulakan hirisan dan menentukan nilai awalnya. Seperti yang ditunjukkan di bawah:

s := []int{1, 2, 3, 4, 5}
Salin selepas log masuk

Kod di atas mencipta kepingan jenis int yang mengandungi 5 elemen dan mentakrifkan nilai awalnya melalui {}.

  1. Mengakses elemen hirisan

Sama seperti tatasusunan, elemen hirisan juga boleh diakses melalui subskrip. Seperti yang ditunjukkan di bawah:

s := []int{1, 2, 3, 4, 5}
s[0] // 访问第一个元素
s[1] // 访问第二个元素
...
Salin selepas log masuk
  1. slice traversal

(1) Use for loop to traverse slice

Anda boleh gunakan for loop untuk traverse slice dan dapatkan setiap nilai elemen. Seperti yang ditunjukkan di bawah:

s := []int{1, 2, 3, 4, 5}
for i := 0; i < len(s); i++ {
    fmt.Println(s[i])
}
Salin selepas log masuk

(2) Gunakan kata kunci julat untuk melintasi kepingan

Menggunakan kata kunci julat boleh melintasi kepingan dengan lebih mudah dan mendapatkan nilai setiap elemen. Seperti yang ditunjukkan di bawah:

s := []int{1, 2, 3, 4, 5}
for _, v := range s {
    fmt.Println(v)
}
Salin selepas log masuk

Dalam kod di atas, menggunakan _ mengabaikan nilai pulangan subskrip dan hanya memperoleh nilai elemen.

  1. potongan kepingan

Di Golang, anda boleh potong hirisan untuk mendapatkan kepingan yang lebih kecil.

Operasi pemotongan hirisan dilaksanakan melalui titik bertindih (: Nombor sebelum titik bertindih pertama menunjukkan kedudukan permulaan, dan nombor selepas bertindih pertama menunjukkan kedudukan penamat (tidak termasuk kedudukan ini), seperti Paparan berikut. :

s := []int{1, 2, 3, 4, 5}
s1 := s[1:3] // s1变成了[2, 3]
Salin selepas log masuk

Dalam kod di atas, s1 bermula dari s[1] dan pergi ke s[3] (tidak termasuk s[3]).

Jika nombor sebelum titik bertindih ditiadakan, ia bermakna bermula dari elemen pertama hirisan. Jika nombor selepas titik bertindih diabaikan, ini bermakna memotong ke elemen terakhir kepingan.

  1. slice menambahkan elemen

slice mempunyai ciri panjang berubah secara dinamik, jadi satu atau lebih elemen boleh ditambahkan pada kepingan sedia ada.

Anda boleh menggunakan fungsi terbina dalam append() untuk menambahkan satu atau lebih elemen pada kepingan. Fungsi append() secara automatik mengembangkan kapasiti hirisan untuk menampung elemen yang baru ditambah.

s := []int{1, 2, 3, 4, 5}
s = append(s, 6) // 追加一个元素6
s = append(s, 7, 8, 9) // 追加三个元素7、8、9
Salin selepas log masuk
  1. slice deletes elements

Dalam Golang, slice tidak mempunyai fungsi terbina dalam untuk memadam elemen, tetapi anda boleh menggunakan fungsi append() bersama-sama dengan operasi pemotongan untuk memadamkan elemen.

Sebagai contoh, jika anda ingin memadamkan elemen ketiga dalam kepingan, anda boleh mengikuti langkah-langkah di bawah:

(1) Gunakan operasi pemotongan kepingan untuk memadam elemen yang akan dipadamkan, seperti berikut:

s := []int{1, 2, 3, 4, 5}
s = append(s[:2], s[3:]...)
Salin selepas log masuk

Dalam kod di atas, fungsi append() digunakan bersama-sama dengan operasi pemotongan untuk memadamkan elemen ketiga s[2] dalam kepingan.

(2) Gunakan gelung for untuk melintasi kepingan, cari elemen yang hendak dipadamkan dan gunakan operasi hirisan untuk memadamkannya.

  1. slice copy

Di Golang, anda boleh menggunakan fungsi copy() terbina dalam untuk menyalin kepingan.

s1 := []int{1, 2, 3, 4, 5}
s2 := make([]int, len(s1))
copy(s2, s1)
Salin selepas log masuk

Dalam kod di atas, fungsi make() digunakan untuk mencipta kepingan s2 dengan panjang yang sama dengan s1, dan fungsi copy() digunakan untuk menyalin elemen dalam s1 ke s2.

Apabila bilangan elemen yang disalin melebihi kapasiti kepingan sasaran, fungsi copy() hanya akan menyalin elemen dalam kepingan sasaran. Jika kepingan sasaran lebih besar daripada kepingan sumber, elemen bernilai 0 akan ditambahkan pada penghujung kepingan sasaran.

Ringkasan

Melalui kandungan di atas, kita boleh meringkaskan ciri utama slice:

(1) Slice ialah jujukan panjang berubah secara dinamik.

(2) Operasi asas hirisan termasuk mencipta, mengakses elemen, melintasi, memotong, menambahkan elemen, memadam elemen dan menyalin.

(3) Gunakan fungsi make() atau kaedah literal untuk mencipta kepingan.

(4) Gunakan subskrip atau kata kunci julat untuk mengakses elemen hirisan.

(5) Gunakan operasi pemotongan untuk membelah kepingan, gunakan fungsi append() untuk menambah elemen dan gunakan fungsi copy() untuk menyalin kepingan.

Ringkasnya, slice, sebagai jenis data terbina dalam di Golang, memainkan peranan yang sangat penting. Apabila kita memerlukan struktur data panjang berubah secara dinamik, kita boleh menggunakan slice terlebih dahulu.

Atas ialah kandungan terperinci Cara guna hirisan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan