Sprintf y Fprintf
Formatee cadenas y escritores
Sprintf y Fprintf es una lección gratuita de Go Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Go Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Go Academy incluye 4 lecciones en total.
La familia de Printf
El paquete fmt tiene tres funciones de formato relacionadas:
Printfescribe en la salida estándar.Sprintfdevuelve una cadena con formato.Fprintfescribe en cualquier writer.
package main
import "fmt"
func main() {
fmt.Printf("hello %s\n", "world")
}Sprintf devuelve una cadena
fmt.Sprintf da formato exactamente igual que Printf, pero, en lugar de imprimir el resultado, lo devuelve como una cadena que puede almacenar o reutilizar.
package main
import "fmt"
func main() {
msg := fmt.Sprintf("%s scored %d", "Bob", 95)
fmt.Println(msg)
}Construir identificadores
Sprintf resulta práctico para ensamblar claves, nombres de archivo o etiquetas a partir de varias partes.
package main
import "fmt"
func main() {
id := fmt.Sprintf("user-%04d", 42)
fmt.Println(id)
}Dar formato a números como texto
Use Sprintf para convertir números en cadenas con un formato adecuado, por ejemplo, para representar importes monetarios.
package main
import "fmt"
func main() {
label := fmt.Sprintf("Price: $%.2f", 7.5)
fmt.Println(label)
}Fprintf escribe en un writer
fmt.Fprintf recibe un io.Writer como primer argumento y escribe en él con formato. os.Stdout es uno de esos writers.
package main
import (
"fmt"
"os"
)
func main() {
fmt.Fprintf(os.Stdout, "to stdout: %d\n", 1)
}Escribir en la salida de error estándar
Envíe los diagnósticos a os.Stderr con Fprintf para mantenerlos separados de la salida normal.
package main
import (
"fmt"
"os"
)
func main() {
fmt.Fprintf(os.Stderr, "warning: %s\n", "low disk")
}Fprintf en un Builder
Como strings.Builder también es un io.Writer, puede dar formato directamente en él y leer la cadena al final.
package main
import (
"fmt"
"strings"
)
func main() {
var b strings.Builder
fmt.Fprintf(&b, "%s=%d;", "x", 10)
fmt.Fprintf(&b, "%s=%d", "y", 20)
fmt.Println(b.String())
}Fprintf en un bytes.Buffer
Un bytes.Buffer es otro destino habitual para un writer. Construya el contenido y conviértalo después en una cadena.
package main
import (
"bytes"
"fmt"
)
func main() {
var buf bytes.Buffer
fmt.Fprintf(&buf, "row %d\n", 1)
fmt.Fprintf(&buf, "row %d\n", 2)
fmt.Print(buf.String())
}Sprint y Fprint sin f
Las versiones con f reciben una cadena de formato. Quite la f para usar Sprint/Fprint, que simplemente concatenan los argumentos con el formato predeterminado.
package main
import "fmt"
func main() {
s := fmt.Sprint("a", 1, true)
fmt.Println(s)
}Sprintln añade espacios
fmt.Sprintln une los argumentos con espacios y añade un salto de línea, devolviendo la cadena.
package main
import "fmt"
func main() {
s := fmt.Sprintln("x", 1, "y", 2)
fmt.Print(s)
}Elegir la herramienta adecuada
Elija según el destino:
- ¿Necesita una cadena? Use
Sprintf. - ¿Escribe en stdout? Use
Printf. - ¿Escribe en un archivo, un buffer o un flujo de errores? Use
Fprintf.
package main
import (
"fmt"
"os"
)
func main() {
s := fmt.Sprintf("count=%d", 3)
fmt.Fprintf(os.Stdout, "%s\n", s)
}Comprobación rápida
¿Qué función devuelve el texto con formato en lugar de imprimirlo?
Recapitulación: Sprintf y Fprintf
Ha aprendido la familia de funciones de formato:
Sprintfdevuelve una cadena.Fprintfescribe en cualquierio.Writer(stdout, stderr, buffers y builders).- Las variantes sin
fusan el formato predeterminado.
package main
import (
"fmt"
"strings"
)
func main() {
var b strings.Builder
fmt.Fprintf(&b, "result=%s", fmt.Sprintf("%d%%", 80))
fmt.Println(b.String())
}Preguntas frecuentes
¿La lección «Sprintf y Fprintf» es gratis?
Sí — el texto completo de «Sprintf y Fprintf» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Go Academy, actualiza a CoddyKit PRO. El curso de Go Academy incluye 4 lecciones en total.
¿Qué aprenderé en «Sprintf y Fprintf»?
Formatee cadenas y escritores Practicas Go Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Go Academy?
No se requiere experiencia previa. Go Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «Sprintf y Fprintf»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Go Academy?
Sí. Cada lección de Go Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Verbos de Printf
- Sprintf y Fprintf
- La interfaz Stringer
- Escaneo de entrada