Rumah pembangunan bahagian belakang Golang Penjelasan terperinci tentang cara menggunakan tatasusunan Golang

Penjelasan terperinci tentang cara menggunakan tatasusunan Golang

Mar 30, 2023 am 09:12 AM

Dalam beberapa tahun kebelakangan ini, Golang (bahasa Go) semakin popular di kalangan pembangun. Golang bukan sahaja mempunyai kecekapan dan kebolehpercayaan bahasa C, tetapi juga mempunyai kesederhanaan dan kemudahan pembelajaran bahasa Python. Antaranya, tatasusunan ialah jenis data yang penting di Golang Dalam artikel ini, kami akan memberi tumpuan kepada penggunaan tatasusunan Golang.

1. Definisi tatasusunan

Mengisytiharkan tatasusunan dalam Golang memerlukan menentukan jenis dan panjang tatasusunan Sintaksnya adalah seperti berikut:

var arr [长度]类型
Salin selepas log masuk

Sebagai contoh, mengisytiharkan tatasusunan dengan panjang 5 tatasusunan jenis int:

var arr [5]int
Salin selepas log masuk

Pada masa ini, Golang akan memperuntukkan ruang untuk kita dan memulakannya mengikut nilai lalai jenis (nilai lalai jenis int ialah 0), seperti berikut:

[0 0 0 0 0]
Salin selepas log masuk

Anda juga boleh menggunakan pemula untuk menetapkan nilai awal kepada tatasusunan, contohnya:

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

atau ia boleh disingkatkan sebagai:

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

Kedua-dua kaedah di atas boleh mencipta tatasusunan dengan panjang Tatasusunan 5, dan menetapkan nilai awal kepada 1, 2, 3, 4, 5.

Jika tiada had tetap pada panjang tatasusunan, anda boleh menggunakan penghirisan.

2. Operasi asas tatasusunan

1 Dapatkan panjang tatasusunan

Dalam Golang, anda boleh menggunakan fungsi len() untuk mendapatkan panjang tatasusunan. , sebagai contoh:

arr := [5]int{1, 2, 3, 4, 5}
length := len(arr)
fmt.Println(length) //输出5
Salin selepas log masuk

2 Akses elemen tatasusunan

Di Golang, anda boleh menggunakan subskrip tatasusunan untuk mengakses elemen tatasusunan dan subskrip tatasusunan mula dikira dari 0. Contohnya:

arr := [5]int{1, 2, 3, 4, 5}
fmt.Println(arr[0]) //输出1
fmt.Println(arr[4]) //输出5
Salin selepas log masuk

3. Ubah suai elemen tatasusunan

Di Golang, anda boleh mengubah suai nilai elemen tatasusunan dengan melanggan, contohnya:

arr := [5]int{1, 2, 3, 4, 5}
arr[0] = 100
fmt.Println(arr) //输出[100 2 3 4 5]
Salin selepas log masuk

3 . Tatasusunan berbilang dimensi

Di Golang, anda juga boleh menggunakan tatasusunan berbilang dimensi. Tatasusunan multidimensi ialah tatasusunan di mana satu elemen ialah tatasusunan. Sama seperti tatasusunan satu dimensi, sintaks untuk mengisytiharkan tatasusunan dua dimensi adalah seperti berikut:

var arr [长度1][长度2]类型
Salin selepas log masuk

Contohnya:

var arr [4][2]int
Salin selepas log masuk

Operasi di atas mencipta dua dimensi tatasusunan dengan 4 baris dan 2 lajur.

Akses dan pengubahsuaian tatasusunan berbilang dimensi juga serupa dengan tatasusunan satu dimensi, menggunakan subskrip, contohnya:

arr := [4][2]int{{1, 2}, {3, 4}, {5, 6}, {7, 8}}
fmt.Println(arr[0][0]) //输出1
fmt.Println(arr[1][1]) //输出4 
arr[2][1] = 10
fmt.Println(arr) //输出[[1 2] [3 4] [5 10] [7 8]]
Salin selepas log masuk

4. Traversal tatasusunan

Dalam Elemen Golang, Tatasusunan boleh diulang dengan mudah menggunakan gelung for. Contohnya:

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

Atau anda boleh menggunakan kata kunci julat untuk melintasi:

arr := [5]int{1, 2, 3, 4, 5}
for index, value := range arr {
    fmt.Printf("arr[%d] = %d \n", index, value)
}
Salin selepas log masuk

Kedua-dua kaedah di atas boleh melintasi elemen dalam tatasusunan output.

5. Tatasusunan sebagai parameter

Dalam Golang, tatasusunan juga boleh digunakan sebagai parameter fungsi. Contohnya:

func sum(arr [5]int) int {
    var sum int
    for _, value := range arr {
        sum += value
    }
    return sum
}

func main() {
    arr := [5]int{1, 2, 3, 4, 5}
    fmt.Println(sum(arr))
}
Salin selepas log masuk

Dalam kod di atas, fungsi sum() menerima tatasusunan jenis int dengan panjang 5 sebagai parameter dan mengembalikan jumlah tatasusunan ini.

6. Tukar slice kepada array

Slice ialah satu lagi jenis data yang sangat penting dalam Golang dan boleh dikembangkan secara dinamik. Jika anda perlu menukar Slice kepada tatasusunan, anda boleh menggunakan fungsi copy(), contohnya:

slice := []int{1, 2, 3, 4, 5}
var arr [5]int
copy(arr[:], slice)
fmt.Println(arr) //输出[1 2 3 4 5]
Salin selepas log masuk

7. Ringkasan

Artikel ini memperkenalkan pengetahuan asas tatasusunan Golang , termasuk definisi tatasusunan, Operasi asas, tatasusunan berbilang dimensi, traversal, tatasusunan sebagai parameter, menukar kepingan kepada tatasusunan, dsb. Jika anda seorang pembangun Golang, mempelajari dan menguasai penggunaan tatasusunan akan membantu meningkatkan kemahiran pengaturcaraan dan kecekapan pembangunan anda.

Atas ialah kandungan terperinci Penjelasan terperinci tentang cara menggunakan tatasusunan Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah kelemahan debian openssl Apakah kelemahan debian openssl Apr 02, 2025 am 07:30 AM

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.

Apakah masalah dengan thread giliran di crawler colly go? Apakah masalah dengan thread giliran di crawler colly go? Apr 02, 2025 pm 02:09 PM

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. � ...

Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Perpustakaan apa yang digunakan untuk operasi nombor terapung di GO? Apr 02, 2025 pm 02:06 PM

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

Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Berubah dari front-end ke pembangunan back-end, adakah lebih menjanjikan untuk belajar Java atau Golang? Apr 02, 2025 am 09:12 AM

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, ...

Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Di Go, mengapa rentetan percetakan dengan fungsi println dan rentetan () mempunyai kesan yang berbeza? Apr 02, 2025 pm 02:03 PM

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

Kaedah Pemantauan PostgreSQL di bawah Debian Kaedah Pemantauan PostgreSQL di bawah Debian Apr 02, 2025 am 07:27 AM

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

Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Bagaimana menyelesaikan masalah penukaran jenis user_id semasa menggunakan aliran redis untuk melaksanakan beratur mesej dalam bahasa Go? Apr 02, 2025 pm 04:54 PM

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

Bagaimana cara menentukan pangkalan data yang berkaitan dengan model dalam beego orm? Bagaimana cara menentukan pangkalan data yang berkaitan dengan model dalam beego orm? Apr 02, 2025 pm 03:54 PM

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 ...

See all articles