Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Formateo de Cadenas | Tipos de Datos
Introducción a Golang

bookFormateo de Cadenas

Ahora que hemos aprendido sobre todos los tipos de datos básicos, podemos explorar el formato de cadenas. En programación, el formato de cadenas implica incorporar valores de variables dentro de cadenas de texto.

Nota

La sentencia import se utiliza para importar paquetes en una aplicación Go. Un paquete es una colección de archivos fuente de Go relacionados que colaboran para ofrecer un conjunto de funcionalidades o servicios. El paquete fmt proporciona funciones que nos permiten formatear cadenas de texto.

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 pasar a una nueva línea:

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

En general, se pueden utilizar estas funciones para insertar valores de variables dentro de datos de tipo cadena mediante el siguiente método:

index.go

index.go

copy
123456789
package 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 es necesario dividir la cadena en varios segmentos para insertar las variables en los lugares correspondientes, lo que puede resultar engorroso en casos más complejos. La función Printf resuelve este problema y simplifica el proceso de mostrar salidas formateadas.

La función Printf recibe una cadena de formato como primer argumento, seguida de los valores (o variables) que se insertarán en la cadena de formato. Una cadena de formato contiene marcadores de posición (especificadores de formato) que definen el formato deseado de la salida.

A continuación se muestra un ejemplo:

index.go

index.go

copy
12345678910
package 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 funcionan 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 dato. La siguiente tabla proporciona una lista de los especificadores de formato básicos:

Especificador de formatoTipo de dato
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

Las variables sustituyen los respectivos marcadores de posición en la cadena de formato. En la salida del ejemplo anterior, el primer %d es reemplazado por el valor de n. De manera similar, el segundo es sustituido por la variable correspondiente, que es in, y el último %d es reemplazado por el valor de out.

También es posible formatear una cadena y almacenarla en una variable de tipo string utilizando la función Sprintf, que formatea una cadena y devuelve el resultado para su almacenamiento o uso posterior, en lugar de mostrarlo inmediatamente en pantalla:

index.go

index.go

copy
123456789101112
package 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) }

Aquí tienes un ejemplo más complejo que incorpora varios conceptos que hemos cubierto anteriormente 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

index.go

copy
12345678910
package 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 conversiones de tipo implícitas para ajustar los valores a los especificadores de formato, como se muestra en el siguiente ejemplo:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

El valor rune 'char' se muestra tanto como carácter como valor numérico. Sin embargo, en algunos casos, el compilador puede generar 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

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

¿Cuál será la salida del siguiente programa?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 7

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Suggested prompts:

Can you explain more about how to use different format specifiers?

What happens if I use the wrong format specifier for a variable?

Can you show more examples of string formatting in Go?

Awesome!

Completion rate improved to 1.96

bookFormateo de Cadenas

Desliza para mostrar el menú

Ahora que hemos aprendido sobre todos los tipos de datos básicos, podemos explorar el formato de cadenas. En programación, el formato de cadenas implica incorporar valores de variables dentro de cadenas de texto.

Nota

La sentencia import se utiliza para importar paquetes en una aplicación Go. Un paquete es una colección de archivos fuente de Go relacionados que colaboran para ofrecer un conjunto de funcionalidades o servicios. El paquete fmt proporciona funciones que nos permiten formatear cadenas de texto.

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 pasar a una nueva línea:

index.go

index.go

copy
12345678
package main import "fmt" func main() { fmt.Print("1") fmt.Print(" 2") fmt.Print(" 3") }

En general, se pueden utilizar estas funciones para insertar valores de variables dentro de datos de tipo cadena mediante el siguiente método:

index.go

index.go

copy
123456789
package 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 es necesario dividir la cadena en varios segmentos para insertar las variables en los lugares correspondientes, lo que puede resultar engorroso en casos más complejos. La función Printf resuelve este problema y simplifica el proceso de mostrar salidas formateadas.

La función Printf recibe una cadena de formato como primer argumento, seguida de los valores (o variables) que se insertarán en la cadena de formato. Una cadena de formato contiene marcadores de posición (especificadores de formato) que definen el formato deseado de la salida.

A continuación se muestra un ejemplo:

index.go

index.go

copy
12345678910
package 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 funcionan 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 dato. La siguiente tabla proporciona una lista de los especificadores de formato básicos:

Especificador de formatoTipo de dato
%dInteger
%sString
%fFloat
%tBoolean
%cCharacter (or Rune)

Las variables sustituyen los respectivos marcadores de posición en la cadena de formato. En la salida del ejemplo anterior, el primer %d es reemplazado por el valor de n. De manera similar, el segundo es sustituido por la variable correspondiente, que es in, y el último %d es reemplazado por el valor de out.

También es posible formatear una cadena y almacenarla en una variable de tipo string utilizando la función Sprintf, que formatea una cadena y devuelve el resultado para su almacenamiento o uso posterior, en lugar de mostrarlo inmediatamente en pantalla:

index.go

index.go

copy
123456789101112
package 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) }

Aquí tienes un ejemplo más complejo que incorpora varios conceptos que hemos cubierto anteriormente 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

index.go

copy
12345678910
package 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 conversiones de tipo implícitas para ajustar los valores a los especificadores de formato, como se muestra en el siguiente ejemplo:

index.go

index.go

copy
1234567
package main import "fmt" func main() { var char rune = 'A' fmt.Printf("The Unicode decimal value of %c is %d", char, char) }

El valor rune 'char' se muestra tanto como carácter como valor numérico. Sin embargo, en algunos casos, el compilador puede generar 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

index.go

copy
12
var value float32 = 5.7 fmt.Printf("%d", value)
question mark

¿Cuál será la salida del siguiente programa?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 2. Capítulo 7
some-alt