Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Membaca Berbilang Nombor dengan Cekap ke dalam Go Slice Menggunakan 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])
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 }
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)
Sebagai contoh, pertimbangkan input ujian berikut:
1 3 5 7 9
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>
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!