Ketahui tentang tatasusunan aliran dalam golang

PHPz
Lepaskan: 2023-04-21 15:01:14
asal
441 orang telah melayarinya

Golang ialah bahasa pengaturcaraan yang telah menarik perhatian ramai sejak beberapa tahun kebelakangan ini dan digemari oleh ramai pembangun. Berbanding dengan bahasa lain, golang mempunyai banyak teknologi dan ciri unik, salah satunya ialah tatasusunan aliran (slice). Tatasusunan aliran ialah struktur data yang serupa dengan tatasusunan, tetapi tidak seperti tatasusunan, tatasusunan aliran boleh menambah atau memadam elemen secara dinamik, menjadikannya lebih fleksibel dan boleh disesuaikan. Mari kita lihat tatasusunan aliran dalam golang.

1. Definisi dan permulaan tatasusunan aliran

Dalam golang, takrifan tatasusunan aliran boleh dimulakan menggunakan fungsi make() atau terus menggunakan []T{}. Antaranya, sintaks fungsi make() adalah seperti berikut:

make([]T, length, capacity) //定义一个长度为length,初始容量为capacity的流转数组
Salin selepas log masuk

Antaranya, T mewakili jenis elemen dalam tatasusunan edaran, panjang mewakili panjang tatasusunan edaran, dan kapasiti mewakili kapasiti awal tatasusunan edaran. Perlu diingatkan di sini bahawa panjang dan kapasiti tidak perlu sama Jika kapasiti kurang daripada panjang, ia akan berkembang secara automatik apabila menambah elemen.

Sebagai contoh, kita boleh mentakrifkan tatasusunan pemindahan integer dengan panjang 0 dan kapasiti awal 10:

a := make([]int, 0, 10)
Salin selepas log masuk

Selain itu, sintaks untuk permulaan terus menggunakan []T{ } adalah seperti berikut :

[]T{a,b,c}  // 定义一个包含a、b、c三个元素的流转数组
Salin selepas log masuk

Sebagai contoh, kita boleh mentakrifkan tatasusunan aliran yang mengandungi tiga elemen integer seperti ini:

b := []int{1, 2, 3}
Salin selepas log masuk

2. Operasi tatasusunan aliran

tatasusunan aliran Ia boleh dikendalikan dengan cara berikut: menambah elemen, memadam elemen, mengubah suai elemen, panjang dan operasi kapasiti.

1. Tambah elemen

Dalam golang, anda boleh menggunakan fungsi append() untuk menambah elemen pada tatasusunan aliran adalah seperti berikut:

append(slice []T, element ...T) []T
Salin selepas log masuk
Salin selepas log masuk

Di mana, slice bermaksud Untuk menambah elemen pada tatasusunan aliran, elemen mewakili elemen yang akan ditambah. Perlu diingatkan bahawa fungsi append() akan mengembalikan tatasusunan aliran baharu, dan tatasusunan aliran asal tidak diubah.

Sebagai contoh, kita boleh menambah elemen integer 1 kepada seperti ini:

a = append(a, 1)
Salin selepas log masuk

Pada masa yang sama, kita juga boleh menambah berbilang elemen pada:

a = append(a, 1, 2, 3)
Salin selepas log masuk

2. Memadam elemen

Sama seperti menambah elemen, anda juga boleh menggunakan fungsi append() untuk memadamkan elemen dalam tatasusunan aliran adalah seperti berikut:

append(slice []T, element ...T) []T
Salin selepas log masuk
Salin selepas log masuk

Di mana, slice bermaksud memadam Tatasusunan pemindahan elemen, berikut...T mewakili parameter berubah, iaitu, satu atau lebih elemen boleh dipadamkan. Perlu diingatkan bahawa fungsi append() juga akan mengembalikan tatasusunan pemindahan baharu, dan tatasusunan pemindahan asal tidak diubah.

Sebagai contoh, kita boleh memadamkan elemen pertama dalam bentuk seperti ini:

a = append(a[:0], a[1:]...)
Salin selepas log masuk

The... di sini bermaksud menambah semua elemen dalam a[1:] kepada a[ one by one :0], dengan itu mencapai tujuan memadamkan elemen pertama dalam a. Begitu juga, kita juga boleh memadamkan berbilang elemen:

a = append(a[:0], a[3:]...)
Salin selepas log masuk

Kod di atas boleh memadamkan elemen ke-0 hingga ke-2 (tidak termasuk yang ke-3) dalam a.

3. Ubah suai elemen

Sama seperti bahasa lain, elemen dalam tatasusunan aliran boleh diubah suai terus melalui subskrip.

Sebagai contoh, kita boleh mengubah suai elemen pertama dalam a kepada 5 seperti ini:

a[0] = 5
Salin selepas log masuk

4 Operasi panjang dan kapasiti

Panjang tatasusunan aliran boleh menjadi Gunakan fungsi len() untuk mendapatkan, dan kapasiti boleh diperoleh menggunakan fungsi cap().

Sebagai contoh, kita boleh mendapatkan panjang dan kapasiti seperti ini:

println(len(a))
println(cap(a))
Salin selepas log masuk

Pada masa yang sama, kita juga boleh menggunakan fungsi copy() terbina dalam untuk menyalin antara tatasusunan pemindahan:

b := make([]int, len(a), cap(a))
copy(b, a)
Salin selepas log masuk

3. Ringkasan

Sebagai struktur data yang fleksibel sesuai untuk pelbagai senario, tatasusunan aliran digunakan secara meluas dalam pembangunan golang. Menggunakan tatasusunan aliran, anda bukan sahaja boleh melakukan operasi biasa seperti menambah, memadam, mengubah suai dan melintasi elemen, tetapi anda juga boleh menggunakan fungsi terbina dalam untuk melaksanakan operasi yang lebih kompleks seperti menyusun dan mencari. Oleh itu, pemahaman dan penguasaan penggunaan tatasusunan aliran akan memberi kesan penting kepada kecekapan kerja dan kualiti kod pembangun golang.

Atas ialah kandungan terperinci Ketahui tentang tatasusunan aliran dalam 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