Rumah > pembangunan bahagian belakang > Golang > Fscanf dan mengetepikan medan seperti dalam C

Fscanf dan mengetepikan medan seperti dalam C

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-02-12 16:18:05
ke hadapan
1230 orang telah melayarinya

Fscanf 并像 C 中那样省略字段

Kandungan soalan

Adakah mungkin untuk meninggalkan medan %*s seperti dalam C?

var pid int
fmt.Fscanf(r, "%*s %d", &pid)
Salin selepas log masuk

Penyelesaian

Sebenarnya, anda tidak boleh melakukan ini dalam Go (sekurang-kurangnya pada Go 1.21.0).

Kod sumber menunjukkan:

(tatasusunan Fscanf(r io.Reader, rentetan format, a...mana-mana) dalam <code>a). Oleh itu, anda mesti mentakrifkan parameter dalam a walaupun anda tidak mengambil berat tentang nilainya

Jika anda tidak mahu mentakrifkan pembolehubah, anda boleh menggunakan:

var pid int
fmt.Fscanf(r, "%s %d", new(string), &pid)
Salin selepas log masuk

Alternatif lainio.ReadAll

Untuk kes khusus anda, untuk menghuraikan sesuatu dalam pembaca, anda boleh membaca pembaca terlebih dahulu ke dalam rentetan (cth.

): strings.Split CB835C294C06824721603abd255bd78a

Kemudian gunakan kaedah
    atau ungkapan biasa, contohnya:
  1. strings.Split
  2. dengan
  • pidString := strings.Split(string(s), " ")[1]
    pid, err := strconv.Atoi(pidString)
    if err != nil {
        panic(err) // handle the error
    }
    
    Salin selepas log masuk
  • Gunakan ungkapan biasa:

    re := regexp.MustCompile(`[^\s]+ (?P<pid>\d+)`) // similar to "%s %d"
    matches := re.FindStringSubmatch(s)
    pidString := matches[re.SubexpIndex("pid")]
    pid, err := strconv.Atoi(pidString)
    if err != nil {
        panic(err) // handle the error
    }
    
    Salin selepas log masuk
    🎜Mungkin ada cara lain, tetapi ini sudah memadai. Semoga membantu. 🎜

    Atas ialah kandungan terperinci Fscanf dan mengetepikan medan seperti dalam C. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    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