Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membaca Integer Berbilang daripada Input Standard di Golang Tanpa Gelung For?

Bagaimana untuk Membaca Integer Berbilang daripada Input Standard di Golang Tanpa Gelung For?

Barbara Streisand
Lepaskan: 2024-10-29 01:10:30
asal
541 orang telah melayarinya

How to Read Multiple Integers from Standard Input in Golang Without a For Loop?

Membaca Integer Dipisahkan Oleh Ruang di Golang

Soalan:

Cara membaca berbilang dengan cekap integer daripada input standard (stdin) dan simpannya dalam kepingan integer tanpa menggunakan gelung for di Golang? Contohnya, diberikan input berikut:

Enter the number of integers
3
Enter the integers
23 45 66
Salin selepas log masuk

Bagaimana untuk menukar nilai ini kepada hirisan integer?

Jawapan:

Walaupun gelung sememangnya wujud, adalah mungkin untuk mencapainya tanpa menggunakan gelung for atau goto yang eksplisit. Begini caranya:

<code class="go">package main

import "fmt"

func main() {
    fmt.Println(`Enter the number of integers`)
    var n int
    if m, err := Scan(&amp;n); m != 1 {
        panic(err)
    }
    fmt.Println(`Enter the integers`)
    all := make([]int, n)
    ReadN(all, 0, n)
    fmt.Println(all)
}

func ReadN(all []int, i, n int) {
    if n == 0 {
        return
    }
    if m, err := Scan(&amp;all[i]); m != 1 {
        panic(err)
    }
    ReadN(all, i+1, n-1)
}

func Scan(a *int) (int, error) {
    return fmt.Scan(a)
}</code>
Salin selepas log masuk

Contoh Input/Output:

Enter the number of integers
3
Enter the integers
10 20 30
[10 20 30]
Salin selepas log masuk

Pengoptimuman untuk Pengimbasan Input yang Lebih Pantas:

Untuk meningkatkan kelajuan pengimbasan input, gantikan fungsi Imbas dengan versi dioptimumkan berikut:

<code class="go">func Scan(a *int) (int, error) {
    var buf [10]byte
    var ret int
    for scanned, err := fmt.Scanf("%d%s", &ret, &buf); err == nil && scanned != 2; {
        fmt.Scanf("%s", &buf)
    }
    *a = ret
    return 1, err
}</code>
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Membaca Integer Berbilang daripada Input Standard di Golang Tanpa Gelung For?. 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