parameter penukaran tatasusunan golang

WBOY
Lepaskan: 2023-05-11 10:41:36
asal
624 orang telah melayarinya

Dalam bahasa Go, tatasusunan ialah jenis data asas Pelaksanaan asasnya ialah kawasan memori berterusan panjang tetap Tatasusunan ditakrifkan seperti berikut:

var arr [5]int // 定义一个长度为5的int类型的数组arr
Salin selepas log masuk

Dalam pembangunan sebenar, kami kadangkala Anda perlu menukar. tatasusunan ke dalam parameter pembolehubah, iaitu, hantar setiap elemen dalam tatasusunan kepada fungsi. Dalam artikel ini, kita akan belajar cara menukar tatasusunan kepada hujah variadic.

Langkah asas untuk menukar parameter tatasusunan

Dalam bahasa Go, anda boleh menggunakan operator ... untuk menukar tatasusunan kepada parameter pembolehubah Contohnya adalah seperti berikut:

rreee

Hasil keluaran ialah:

package main

import "fmt"

func test(args ...int) {
    fmt.Println(args)
}

func main() {
    arr := [5]int{1, 2, 3, 4, 5}
    test(arr[:]...) // 将数组arr转换为变参
}
Salin selepas log masuk

Dalam kod di atas, kami menukar tatasusunan arr menjadi parameter berubah dengan menghiris [:] dan menyerahkannya kepada fungsi test. Dalam fungsi test, kita boleh mendapatkan setiap elemen dalam tatasusunan dengan merentasi parameter pembolehubah. Perlu diingat bahawa apabila menggunakan operator ... untuk menukar tatasusunan kepada parameter berubah, perkara berikut perlu diambil perhatian:

  1. Tatasusunan mestilah tatasusunan biasa dan tidak boleh menjadi kepingan atau jenis lain. Pengendali
  2. ... mestilah selepas tatasusunan dan terus selepas [:].
  3. perlu diluluskan menggunakan operator ....

Senario Aplikasi Parameter Penukaran Tatasusunan

Dalam pembangunan sebenar, senario aplikasi untuk menukar tatasusunan kepada parameter pembolehubah adalah sangat luas di bawah ini.

1 Gunakan tatasusunan sebagai parameter fungsi

Apabila memanggil fungsi, kita boleh meneruskan tatasusunan sebagai parameter fungsi kepada parameter pembolehubah. Contohnya:

[1 2 3 4 5]
Salin selepas log masuk

Dalam kod di atas, kami mentakrifkan fungsi sum yang menerima sebarang bilangan pembolehubah integer dan menambahkannya bersama-sama. Dalam fungsi main, kami mentakrifkan tatasusunan arr dengan panjang 5, menukarnya menjadi parameter berubah dan menyerahkannya kepada fungsi sum. Dalam fungsi, setiap elemen dalam tatasusunan diperoleh dengan merentasi parameter pembolehubah, dan ia terkumpul dan dijumlahkan.

2. Salin elemen tatasusunan ke tatasusunan lain

Kadangkala, kita perlu menyalin semua atau sebahagian daripada elemen dalam satu tatasusunan ke tatasusunan yang lain Parameter pembolehubah, dan kemudian gunakan fungsi append untuk menambah elemen parameter pembolehubah pada tatasusunan baharu. Contohnya:

package main

import "fmt"

func sum(nums ...int) {
    total := 0
    for _, num := range nums {
        total += num
    }
    fmt.Println(total)
}

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

Dalam kod di atas, kami mentakrifkan dua tatasusunan arr1 dan arr2, dan selepas menukar tatasusunan arr1 kepada parameter boleh ubah, gunakan fungsi append untuk menukar elemen dalam parameter pembolehubah Tambahkan pada penghujung tatasusunan arr2. Perlu diingat bahawa apabila menggunakan fungsi append untuk menambah kepingan atau tatasusunan, anda perlu menggunakan operator ... di hujung kepingan atau tatasusunan untuk mengembangkan parameter pembolehubah.

Ringkasan

Melalui kajian artikel ini, kami telah mempelajari cara menukar tatasusunan kepada parameter berubah dan memperkenalkan dua senario aplikasi biasa untuk menukar tatasusunan kepada parameter berubah dalam pembangunan sebenar. Perlu diingat bahawa apabila menggunakan operator ... untuk menukar tatasusunan menjadi parameter berubah, anda perlu memberi perhatian kepada peraturan tatabahasa dan butiran untuk mengelakkan ralat.

Atas ialah kandungan terperinci parameter penukaran tatasusunan 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
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!