Mengimbas Nombor ke dalam Slices dalam Go
Apabila membaca berbilang nombor daripada input standard dalam Go, anda boleh menetapkan nilai kepada pembolehubah individu:
numbers := make([]int, 2) fmt.Fscan(os.Stdin, &numbers[0], &numbers[1])
Walau bagaimanapun, anda mungkin mahu memudahkan proses dan membaca terus ke dalam kepingan. Pakej fmt tidak menyokong pengimbasan ke dalam kepingan, tetapi fungsi utiliti berikut boleh membantu:
func packAddrs(n []int) []interface{} { p := make([]interface{}, len(n)) for i := range n { p[i] = &n[i] } return p }
Fungsi ini mencipta kepingan alamat untuk setiap elemen dalam kepingan input. Dengan fungsi ini, anda boleh mengimbas ke dalam kepingan seperti ini:
numbers := make([]int, 2) n, err := fmt.Fscan(os.Stdin, packAddrs(numbers)...) fmt.Println(numbers, n, err)
Menguji ini dengan fmt.Sscan():
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>
Atas ialah kandungan terperinci Bagaimana untuk Mengimbas Berbilang Nombor dengan Cekap ke dalam Slice dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!