Formateo de Cadenas
Ahora que ya conocemos todos los tipos de datos básicos, podemos explorar el formateo de cadenas. En programación, el formateo de cadenas consiste en incorporar valores variables a las cadenas.
Nota
La sentencia
import
se utiliza para importar paquetes en una aplicación Go. Un paquete es una colección de archivos fuente Go relacionados que colaboran para ofrecer un conjunto de funcionalidades o servicios. El paquetefmt
proporciona funciones que nos permiten formatear cadenas.
Una de las funciones del paquete fmt
que hemos estado utilizando es la función Println
. La función Println
muestra el texto de salida en una nueva línea cada vez. Sin embargo, existe una función llamada Print
que muestra la salida sin moverse a una nueva línea:
index.go
12345678package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }
En general, podemos utilizar estas funciones para insertar valores variables dentro de datos de cadena utilizando el siguiente método:
index.go
123456789package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }
Sin embargo, este método no es muy eficiente porque tenemos que dividir la cadena en muchos segmentos para insertar variables en los lugares pertinentes, lo que puede resultar engorroso en los casos más complejos. La función Printf
resuelve este problema y simplifica el proceso de mostrar una salida formateada.
La función Printf
toma como primer argumento una cadena de formato, seguida de los valores (o variables) que deben insertarse en la cadena de formato. Una cadena de formato contiene marcadores de posición (especificadores de formato) que definen el formato de salida deseado.
He aquí un ejemplo:
index.go
12345678910package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }
Como se ilustra en el ejemplo, los especificadores de formato son símbolos que sirven como marcadores de posición para tipos de datos específicos dentro de una cadena. Existe un especificador de formato distinto para cada tipo de datos. La tabla siguiente ofrece una lista de los especificadores de formato básicos:
|**Especificador de formato Tipo de datos |--|--| |Entero |%s Cadena |%f Flotante |Booleano |Carácter (o runa)
Las variables sustituyen a los respectivos marcadores de posición en la cadena de formato. En la salida del ejemplo anterior, el primer %d
se sustituye por el valor de n
. Del mismo modo, el segundo se sustituye por la variable correspondiente, que es in
, y el último %d
se sustituye por el valor de out
.
También podemos formatear una cadena y almacenarla dentro de una variable de cadena utilizando la función Sprintf
, que formatea una cadena y devuelve la cadena resultante para almacenarla o utilizarla en otro lugar, en lugar de mostrarla inmediatamente en la pantalla:
index.go
123456789101112package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }
He aquí un ejemplo más complejo que incorpora múltiples conceptos que hemos cubierto previamente en un solo programa. Será un ejercicio valioso revisar el siguiente programa y su salida para mejorar tus habilidades de lectura de código:
index.go
12345678910package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }
En algunos casos, el compilador realiza una conversión de tipos implícita para hacer coincidir valores con especificadores de formato, como se muestra en el siguiente ejemplo:
index.go
1234567package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }
La runa 'char' se muestra como un carácter y como un valor numérico. Sin embargo, en algunos casos, el compilador puede producir un error. Por ejemplo, el siguiente código producirá una salida no válida porque un 'float' no puede convertirse implícitamente en un 'int':
index.go
12var value float32 = 5.7 fmt.Printf("%d", value)
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 1.96
Formateo de Cadenas
Desliza para mostrar el menú
Ahora que ya conocemos todos los tipos de datos básicos, podemos explorar el formateo de cadenas. En programación, el formateo de cadenas consiste en incorporar valores variables a las cadenas.
Nota
La sentencia
import
se utiliza para importar paquetes en una aplicación Go. Un paquete es una colección de archivos fuente Go relacionados que colaboran para ofrecer un conjunto de funcionalidades o servicios. El paquetefmt
proporciona funciones que nos permiten formatear cadenas.
Una de las funciones del paquete fmt
que hemos estado utilizando es la función Println
. La función Println
muestra el texto de salida en una nueva línea cada vez. Sin embargo, existe una función llamada Print
que muestra la salida sin moverse a una nueva línea:
index.go
12345678package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }
En general, podemos utilizar estas funciones para insertar valores variables dentro de datos de cadena utilizando el siguiente método:
index.go
123456789package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Println("There are", n, "cats,", in, "of them are inside the house while", out, "are outside.") }
Sin embargo, este método no es muy eficiente porque tenemos que dividir la cadena en muchos segmentos para insertar variables en los lugares pertinentes, lo que puede resultar engorroso en los casos más complejos. La función Printf
resuelve este problema y simplifica el proceso de mostrar una salida formateada.
La función Printf
toma como primer argumento una cadena de formato, seguida de los valores (o variables) que deben insertarse en la cadena de formato. Una cadena de formato contiene marcadores de posición (especificadores de formato) que definen el formato de salida deseado.
He aquí un ejemplo:
index.go
12345678910package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in fmt.Printf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) }
Como se ilustra en el ejemplo, los especificadores de formato son símbolos que sirven como marcadores de posición para tipos de datos específicos dentro de una cadena. Existe un especificador de formato distinto para cada tipo de datos. La tabla siguiente ofrece una lista de los especificadores de formato básicos:
|**Especificador de formato Tipo de datos |--|--| |Entero |%s Cadena |%f Flotante |Booleano |Carácter (o runa)
Las variables sustituyen a los respectivos marcadores de posición en la cadena de formato. En la salida del ejemplo anterior, el primer %d
se sustituye por el valor de n
. Del mismo modo, el segundo se sustituye por la variable correspondiente, que es in
, y el último %d
se sustituye por el valor de out
.
También podemos formatear una cadena y almacenarla dentro de una variable de cadena utilizando la función Sprintf
, que formatea una cadena y devuelve la cadena resultante para almacenarla o utilizarla en otro lugar, en lugar de mostrarla inmediatamente en la pantalla:
index.go
123456789101112package main import "fmt" func main() { var n int = 5 var in int = n / 2 var out int = n - in var text string = fmt.Sprintf("There are %d cats, %d of them are inside the house with %d of them are outside. ", n, in, out) fmt.Println("Text:", text) }
He aquí un ejemplo más complejo que incorpora múltiples conceptos que hemos cubierto previamente en un solo programa. Será un ejercicio valioso revisar el siguiente programa y su salida para mejorar tus habilidades de lectura de código:
index.go
12345678910package main import "fmt" func main() { var numA float32 = 17.7 var numB int = 10 var str string = fmt.Sprintf("It is %t that 'a' is bigger than 'b'.", numA > float32(numB)) fmt.Printf("The numbers 'a' and 'b' are %f and %d. %s", numA, numB, str) }
En algunos casos, el compilador realiza una conversión de tipos implícita para hacer coincidir valores con especificadores de formato, como se muestra en el siguiente ejemplo:
index.go
1234567package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }
La runa 'char' se muestra como un carácter y como un valor numérico. Sin embargo, en algunos casos, el compilador puede producir un error. Por ejemplo, el siguiente código producirá una salida no válida porque un 'float' no puede convertirse implícitamente en un 'int':
index.go
12var value float32 = 5.7 fmt.Printf("%d", value)
¡Gracias por tus comentarios!