É possível omitir campos como em C onde você pode %*s
?
var pid int
fmt.Fscanf(r, "%*s %d", &pid)
É possível omitir campos como em C onde você pode %*s
?
var pid int
fmt.Fscanf(r, "%*s %d", &pid)
Na verdade, você não pode fazer isso no Go (pelo menos no Go 1.21.0).
O código-fonte mostra que:
%*s
em C): na verdade, o verbo para strings é sempre um único caractere (%s
,%v
,%q
,%x
ou%X
)Fscanf
método itera nos argumentos (a
array inFscanf(r io.Reader, format string, a ...any)
). Como resultado, você deve definir um argumento ema
, mesmo que não se importe com seu valorSe você não quiser definir uma variável, você pode usar:
Outras alternativas
No entanto, para o seu caso específico, para analisar algo de um leitor, você pode primeiro ler o leitor em uma string (por exemplo
io.ReadAll
):E então use
strings.Split
o método ou um regex, como:strings.Split
Provavelmente existem outros métodos, mas estes devem ser suficientes para ilustração. Espero que ajude.