Penggunaan hirisan golang
Golang ialah bahasa pengaturcaraan sumber terbuka yang telah digunakan secara meluas dalam Internet dan medan data besar sejak dikeluarkan pada tahun 2007. Antaranya, slice (slice), sebagai ciri tatasusunan dinamik, telah menjadi salah satu struktur data yang paling praktikal di Golang.
Artikel ini akan memperkenalkan secara terperinci definisi, penciptaan, pemintasan, pengembangan dan penggunaan kepingan dalam Golang, serta perbezaan daripada tatasusunan.
1. Definisi slice
Slice dalam Golang ialah struktur data jenis rujukan Ia adalah enkapsulasi tatasusunan asas dan mengandungi rujukan, panjang dan Kapasiti serta maklumat lain yang berkaitan.
Format definisi kepingan ialah: nama var []Jenis, dengan nama ialah nama kepingan dan Jenis ialah jenis elemen kepingan.
Contohnya:
var s []int // Tentukan kepingan kosong jenis int
var a []rentetan // Tentukan kepingan kosong rentetan jenis
2. Penciptaan kepingan
Hirisan boleh dibuat melalui fungsi make. Format fungsi buat ialah make([]Jenis, panjang, kapasiti), dengan Jenis ialah jenis elemen kepingan, panjang ialah panjang kepingan dan kapasiti ialah kapasiti kepingan.
Contohnya:
s := make([]int, 3, 5) // Buat kepingan jenis int dengan panjang 3 dan kapasiti 5
a : = make( []string, 2) // Cipta kepingan jenis rentetan dengan panjang 2 dan kapasiti 2
Perlu diingat bahawa jika kapasiti tidak dinyatakan, kapasiti kepingan yang dicipta akan sama dengan panjangnya, iaitu: make([]Type, length).
Selain itu, kepingan juga boleh dibuat melalui tatasusunan. Contohnya:
arr := [5]int{1, 2, 3, 4, 5}
s := arr[1:3] // Cipta tatasusunan asas daripada subskrip 1 hingga Slice dengan subskrip 2
3. Slice interception
Slice boleh mendapatkan slice baharu melalui operasi interception Format pemintasan ialah nama[start:end], dengan permulaan mewakili Subskrip mula, end mewakili subskrip akhir (tidak termasuk hujung itu sendiri).
Perlu diambil perhatian bahawa julat nilai mula dan tamat adalah dalam [0, len(nama)] dan mula≤akhir.
Contohnya:
s := make([]int, 5) // Buat kepingan jenis int dengan panjang 5
s1 := s[1:3] // Dapatkan kepingan daripada subskrip 1 hingga subskrip 2
Selain itu, anda juga boleh meninggalkan mana-mana satu atau kedua-duanya dari permulaan atau akhir, supaya kepingan akan memilih nilai maksimum atau minimum sebagai permulaan atau akhir yang sepadan secara lalai .
Contohnya:
s := make([]int, 5) // Buat kepingan jenis int dengan panjang 5
s1 := s[:3] // Dapatkan Potongan daripada subskrip 0 kepada subskrip 2
s2 := s[2:] // Dapatkan kepingan daripada subskrip 2 kepada subskrip 4
s3 := s[:] // Dapatkan keseluruhan kepingan
4. Pengembangan kepingan
Pengembangan kepingan ialah apabila panjang kepingan asal tidak mencukupi, anda perlu meningkatkan kapasiti kepingan, dan pada masa yang sama membuka semula tatasusunan asas yang lebih besar, dan menambah tatasusunan asal ke kepingan. Data disalin ke tatasusunan asas baharu.
Mekanisme pengembangan kepingan di Golang adalah dengan terlebih dahulu memohon memori bersebelahan dengan kapasiti lebih besar daripada kepingan semasa, dan kemudian menyalin data dalam tatasusunan asas asal ke tatasusunan pendasar baharu. Akhir sekali, tatasusunan asas asal dikeluarkan, membenarkan kepingan asal merujuk tatasusunan asas baharu.
Proses pengembangan kepingan dilaksanakan di bahagian bawah oleh perpustakaan runtime, yang juga menerangkan sebab apabila menggunakan kepingan, anda perlu menggunakan fungsi make untuk menentukan kapasiti (apabila kapasiti tidak mencukupi, ia akan menjadi dikembangkan), atau dalam kepingan Isytiharkannya dalam skop.
Perlu diingatkan bahawa apabila hirisan dikembangkan, ruang memori akan diperuntukkan Jika elemen dalam hirisan tidak lagi berguna, adalah disyorkan untuk mengelak daripada menyimpan elemen tidak berguna ini dalam hirisan, yang akan membawa kepada pendudukan memori yang berlebihan.
5. Perbezaan antara kepingan dan tatasusunan
Dalam Golang, tatasusunan dan kepingan ialah dua jenis data yang berbeza. Di satu pihak, tatasusunan ialah bekas dengan panjang tetap yang menyimpan unsur-unsur jenis yang sama, manakala hirisan ialah tatasusunan dinamik (bekas dinamik sebaliknya, apabila tatasusunan digunakan, panjangnya sudah ditentukan). apabila ia ditakrifkan, dan Panjang hirisan boleh ditukar secara dinamik pada masa jalankan; tatasusunan perlu diberikan secara eksplisit. Dalam kebanyakan kes, menggunakan tatasusunan boleh membawa banyak kesulitan, seperti apabila sejumlah besar data perlu diproses, tatasusunan mungkin mengambil terlalu banyak ruang memori dan menyebabkan atur cara ranap.
Sebaliknya, kepingan ialah struktur data yang sangat berguna. Disebabkan sifatnya yang boleh berskala secara dinamik, penghirisan boleh mengatasi kekurangan panjang tetap tatasusunan dan merupakan salah satu jenis data pilihan apabila berurusan dengan pengumpulan data bersaiz berubah-ubah. Apabila menggunakannya, mula-mula kita boleh mengisytiharkan kepingan kosong dan kemudian meningkatkan panjangnya secara dinamik mengikut keperluan sebenar.
Kesimpulan
Artikel ini terutamanya memperkenalkan penggunaan hirisan biasa di Golang seperti definisi, penciptaan, pemintasan, pengembangan dan perbezaan daripada tatasusunan. Sebagai salah satu struktur data yang berkuasa di Golang, penghirisan boleh membantu kami memproses pengumpulan data bersaiz pembolehubah dengan cepat dan mudah. Menguasai kaedah operasi menghiris membolehkan kami menulis program Golang dengan lebih cekap.
Atas ialah kandungan terperinci Penggunaan hirisan golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



OpenSSL, sebagai perpustakaan sumber terbuka yang digunakan secara meluas dalam komunikasi yang selamat, menyediakan algoritma penyulitan, kunci dan fungsi pengurusan sijil. Walau bagaimanapun, terdapat beberapa kelemahan keselamatan yang diketahui dalam versi sejarahnya, yang sebahagiannya sangat berbahaya. Artikel ini akan memberi tumpuan kepada kelemahan umum dan langkah -langkah tindak balas untuk OpenSSL dalam sistem Debian. Debianopenssl yang dikenal pasti: OpenSSL telah mengalami beberapa kelemahan yang serius, seperti: Kerentanan Pendarahan Jantung (CVE-2014-0160): Kelemahan ini mempengaruhi OpenSSL 1.0.1 hingga 1.0.1f dan 1.0.2 hingga 1.0.2 versi beta. Penyerang boleh menggunakan kelemahan ini untuk maklumat sensitif baca yang tidak dibenarkan di pelayan, termasuk kunci penyulitan, dll.

Perpustakaan yang digunakan untuk operasi nombor terapung dalam bahasa Go memperkenalkan cara memastikan ketepatannya ...

Masalah Threading Giliran di GO Crawler Colly meneroka masalah menggunakan Perpustakaan Colly Crawler dalam bahasa Go, pemaju sering menghadapi masalah dengan benang dan permintaan beratur. � ...

Artikel ini memperkenalkan pelbagai kaedah dan alat untuk memantau pangkalan data PostgreSQL di bawah sistem Debian, membantu anda memahami pemantauan prestasi pangkalan data sepenuhnya. 1. Gunakan PostgreSQL untuk membina pemantauan PostgreSQL sendiri menyediakan pelbagai pandangan untuk pemantauan aktiviti pangkalan data: PG_STAT_ACTIVITY: Memaparkan aktiviti pangkalan data dalam masa nyata, termasuk sambungan, pertanyaan, urus niaga dan maklumat lain. PG_STAT_REPLITI: Memantau status replikasi, terutamanya sesuai untuk kluster replikasi aliran. PG_STAT_DATABASE: Menyediakan statistik pangkalan data, seperti saiz pangkalan data, masa komitmen/masa rollback transaksi dan petunjuk utama lain. 2. Gunakan alat analisis log pgbadg

Laluan Pembelajaran Backend: Perjalanan Eksplorasi dari Front-End ke Back-End sebagai pemula back-end yang berubah dari pembangunan front-end, anda sudah mempunyai asas Nodejs, ...

Masalah menggunakan redisstream untuk melaksanakan beratur mesej dalam bahasa Go menggunakan bahasa Go dan redis ...

Perbezaan antara percetakan rentetan dalam bahasa Go: perbezaan kesan menggunakan fungsi println dan rentetan () sedang ...

Di bawah rangka kerja beegoorm, bagaimana untuk menentukan pangkalan data yang berkaitan dengan model? Banyak projek beego memerlukan pelbagai pangkalan data untuk dikendalikan secara serentak. Semasa menggunakan beego ...
