Conforme você escreve o código Go, você achará a formatação de strings muito útil em muitas situações. Você pode estar analisando entradas ou criando saídas mais complexas do que uma simples concatenação. Você pode estar trabalhando com tipos diferentes de strings simples.
A formatação de strings em Go usa o processo familiar e a sintaxe da função printf, que linguagens de Java a Haskell também usam.
Go fornece vários métodos para formatar strings no fmt pacote. Você pode usar funções e verbos para formatação de string dependendo da operação ou entradas que deseja formatar.
Formatação de string em Go
As funções no pacote fmt são semelhantes às contrapartes, como a função printf no bash ou C. Go deriva seus verbos de formatação de C.
Você usa verbos de formatação de string como espaços reservados para seus valores de variável em uma string contendo. Você pode então passar essa string de formatação para uma função como Imprimir, juntamente com os valores correspondentes a esses marcadores.
Você não pode usar verbos de formatação de string com o
Imprimir e Imprimir métodos. Você pode usá-los com métodos como Imprimir e Sprintf.fmt. Println("Este é um teste %v", 90)
fmt. Printf("Este é um teste %v", 90)
o %v verb imprime qualquer valor em seu formato padrão. o Imprimir O método não reconhece verbos e imprime quaisquer argumentos que receber. o Imprimir e Sprintf ambas as funções formatam o primeiro argumento de string que você passa para elas.
Funções de formatação de string no pacote fmt
Formatando strings em a linguagem de programação Go requer que você use uma função de formatação de string e um verbo. A função retorna a string formatada e os verbos são os espaços reservados para as entradas da string.
o Imprimir O método formata a entrada de acordo com o especificador de formato e retorna o número de bytes ou erros gravados.
fmt. Printf("Este é um teste %v", 90)
Convencionalmente, você não terá que se preocupar com erros ao usar o Imprimir método.
o Sprintf O método formata de acordo com o formato especificado e retorna o resultado como uma string.
var resultado = fm. Sprintf("Este é um teste %v", 90)
o Fprintf O método formata a string e a grava em um gravador (métodos que implementam o io. Escritor interface)
// escreve dados na saída padrão
resultado, err = fmt. Fprintf (escritor, "Este é um teste %v", 90)
o Fscanf O método digitaliza a partir de um leitor e formata de acordo com o formato especificado.
var leva corda
// lê os dados da string dada
readString := strings. NewReader("Este é um teste")
leia, err := fmt. Fscanf (leitor, "%v", &tomar)
Neste caso, o Fscanf decodifica a string do leitor para o leva variável e o ler variável contém o resultado do formato.
Os Verbos de Formatação de Strings
Go fornece muitos verbos de formatação que você pode usar junto com as funções de formatação de string.
Existem verbos gerais de formatação de strings como o %v verbo nos exemplos de funções de formatação de string. Você pode usar os verbos gerais de formatação de string para formatar qualquer tipo de dados.
Você pode usar o %#v verbo para produzir qualquer valor, o %+v para estruturas, o %T verbo para o tipo de qualquer valor, e o %% verbo para nenhum valor.
modelo algum estrutura {
nome corda
era int
isLoggedIn bool
}var instância = qualquer {
nome: "John Doe",
era: 34,
isLoggedIn: verdadeiro,
}
var resultado = fm. Sprintf("Este é um estrutura exemplo de formatação %+v", instância)
fmt. Println (resultado)
o resultado variável contém a string formatada da estrutura instanciada. Se você imprimir, deve ficar assim:
Este é um exemplo de formatação de estrutura {name: John Doe age: 34 isLoggedIn:verdadeiro}
Existem os verbos para formatar tipos de dados nativos específicos do Go, incluindo canais e ponteiros.
Verbo | Funcionalidade |
---|---|
%t | booleanos. |
%d | int, int8, etc. |
%d, %#x se impresso com %#v | uint, uint8, etc. |
%g | float32, complexo64, etc. |
%s | corda. |
%p | chan. |
%P | ponteiro. |
Você deve garantir que não cometa erros com os verbos, pois eles diferenciam maiúsculas de minúsculas, como o chan e ponteiro verbos.
Formatação de números inteiros e flutuantes
Existem verbos de formatação de strings para formatar inteiros em bases diferentes. Você pode usar qualquer um desses verbos para formatar números inteiros
Verbo | Funcionalidade |
---|---|
%b | base 2 |
%c | o caractere representado pelo ponto de código Unicode correspondente. |
%d | base 10. |
%o | base 8. |
%O | base 8 com prefixo 0o. |
%q | um literal de caractere entre aspas simples escapou com segurança com a sintaxe Go. |
%x | base 16, com letras minúsculas para a-f. |
%X | base 16, com letras maiúsculas para A-F. |
%VOCÊ | Formato Unicode: U+1234; igual a "U+%04X". |
Por exemplo, você pode formatar um inteiro usando o %d verbo:
var resultado = fm. Sprintf("Este é um exemplo de formatação inteira %d", 90)
fmt. Println (resultado)
Estes são os verbos para formatar números de ponto flutuante.
Verbo | Funcionalidade |
---|---|
%b | notação científica sem decimal com expoente uma potência de dois, na forma de strconv. FormatFloat com o formato 'b', por exemplo -123456p-78 |
%e | notação científica, por exemplo -1,234456e+78 |
%E | ponto decimal, mas sem expoente, por exemplo, 123,456 |
%f | ponto decimal, mas sem expoente, por exemplo, 123,456 |
%F | sinônimo de %f. |
%g | %e para grandes expoentes, %f caso contrário. Precisão abaixo. |
%G | %E para grandes expoentes, %F caso contrário |
%x | notação hexadecimal (com potência decimal de dois expoentes), por exemplo, -0x1.23abcp+20. |
%X | notação hexadecimal maiúscula, por exemplo -0X1.23ABCP+20. |
Aqui está um exemplo de formatação de um ponto decimal sem expoente com o %f verbo.
var resultado = fm. Sprintf("Este é um exemplo de formatação de ponto flutuante %f", 432.9503)
fmt. Println (resultado)
Você sempre pode usar os verbos gerais se não tiver certeza sobre o tipo.
Formatando Strings e Bytes
Os tipos de strings e slice of byte são bastante semelhantes em Go. Esses são os sinalizadores para formatar strings e bytes.
Verbo | Funcionalidade |
---|---|
%s | os bytes não interpretados da string ou fatia |
%q | uma string entre aspas duplas escapou com segurança com a sintaxe Go |
%x | base 16, minúscula, dois caracteres por byte |
%X | base 16, maiúsculas, dois caracteres por byte |
Aqui está um exemplo de formatação de uma string com o %s verbo.
var pontuação = "exemplo"
var resultado = fm. Sprintf("Este é um corda exemplo de formatação %s", pontuação)
fmt. Println (resultado)
O pacote fmt é essencial para programação em Python
o fmt O pacote contém a maioria das funcionalidades necessárias para a formatação de strings. Go também oferece cordas pacote para manipulação de strings e um registro pacote que pode formatar strings para registro.
o fmt pacote tem funções que implementam o io. Escritor e io. Leitor interfaces. Você achará útil para muitos casos de uso, como criar aplicativos da Web e de linha de comando.