Rumah > pembangunan bahagian belakang > Golang > Bagaimanakah Saya Boleh Membaca Berbilang Nombor dengan Cekap ke dalam Go Slice Menggunakan fmt.Fscan?

Bagaimanakah Saya Boleh Membaca Berbilang Nombor dengan Cekap ke dalam Go Slice Menggunakan fmt.Fscan?

Patricia Arquette
Lepaskan: 2024-12-16 21:53:15
asal
613 orang telah melayarinya

How Can I Efficiently Read Multiple Numbers into a Go Slice Using fmt.Fscan?

Membaca Nombor ke Dalam Kepingan Menggunakan fmt.Fscan

Untuk membaca berbilang nombor ke dalam tatasusunan atau hirisan dalam Go menggunakan fmt.Fscan, ia adalah amalan biasa untuk mengisytiharkan pembolehubah individu dan memberikan alamatnya sebagai hujah:

numbers := make([]int, 2)
fmt.Fscan(os.Stdin, &numbers[0], &numbers[1])
Salin selepas log masuk

Walau bagaimanapun, ia adalah tidak mungkin untuk meneruskan hirisan itu sendiri sebagai parameter kepada fmt.Fscan. Untuk memudahkan proses ini, anda boleh mencipta fungsi utiliti yang membungkus alamat elemen hirisan:

func packAddrs(n []int) []interface{} {
    p := make([]interface{}, len(n))
    for i := range n {
        p[i] = &n[i]
    }
    return p
}
Salin selepas log masuk

Menggunakan fungsi ini, anda kini boleh mengimbas keseluruhan kepingan dengan fmt.Fscan:

numbers := make([]int, 2)
n, err := fmt.Fscan(os.Stdin, packAddrs(numbers)...) // ... unpacks the slice addresses
fmt.Println(numbers, n, err)
Salin selepas log masuk

Sebagai contoh, pertimbangkan input ujian berikut:

1 3 5 7 9
Salin selepas log masuk

Menggunakan fmt.Sscan untuk ujian tujuan:

numbers := make([]int, 5)
n, err := fmt.Sscan("1 3 5 7 9", packAddrs(numbers)...)
fmt.Println(numbers, n, err) // Output: [1 3 5 7 9] 5 <nil>
Salin selepas log masuk

Ini menunjukkan cara membaca berbilang nombor ke dalam kepingan dengan cekap menggunakan fmt.Fscan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Membaca Berbilang Nombor dengan Cekap ke dalam Go Slice Menggunakan fmt.Fscan?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan