Sprintf e Fprintf
Formattare in stringhe e writer
Sprintf e Fprintf è una lezione Go Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Go Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Go Academy include 4 lezioni in totale.
La famiglia Printf
Il pacchetto fmt offre tre funzioni di formattazione affini:
Printfscrive sull'output standard.Sprintfrestituisce una stringa formattata.Fprintfscrive in qualsiasi writer.
package main
import "fmt"
func main() {
fmt.Printf("hello %s\n", "world")
}Sprintf restituisce una stringa
fmt.Sprintf formatta esattamente come Printf ma, invece di stampare, restituisce il risultato come stringa da memorizzare o riutilizzare.
package main
import "fmt"
func main() {
msg := fmt.Sprintf("%s scored %d", "Bob", 95)
fmt.Println(msg)
}Costruire identificatori
Sprintf è utile per assemblare chiavi, nomi di file o etichette a partire da più parti.
package main
import "fmt"
func main() {
id := fmt.Sprintf("user-%04d", 42)
fmt.Println(id)
}Formattare i numeri come testo
Utilizzi Sprintf per trasformare i numeri in stringhe formattate in modo accurato, ad esempio per rappresentare importi monetari.
package main
import "fmt"
func main() {
label := fmt.Sprintf("Price: $%.2f", 7.5)
fmt.Println(label)
}Fprintf scrive in un writer
fmt.Fprintf accetta un io.Writer come primo argomento e formatta il contenuto al suo interno. os.Stdout è un writer di questo tipo.
package main
import (
"fmt"
"os"
)
func main() {
fmt.Fprintf(os.Stdout, "to stdout: %d\n", 1)
}Scrivere nell'errore standard
Invii la diagnostica a os.Stderr con Fprintf, così rimane separata dall'output normale.
package main
import (
"fmt"
"os"
)
func main() {
fmt.Fprintf(os.Stderr, "warning: %s\n", "low disk")
}Fprintf in un builder
Poiché anche strings.Builder è un io.Writer, è possibile formattare direttamente al suo interno e leggere la stringa alla fine.
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 in un bytes.Buffer
Un bytes.Buffer è un altro comune destinatario di scrittura. Costruisca il contenuto e poi lo converta in una stringa.
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 e Fprint senza f
Le varianti con f accettano una stringa di formato. Rimuova la f per usare Sprint/Fprint, che concatenano semplicemente gli argomenti applicando la formattazione predefinita.
package main
import "fmt"
func main() {
s := fmt.Sprint("a", 1, true)
fmt.Println(s)
}Sprintln aggiunge spazi
fmt.Sprintln unisce gli argomenti con degli spazi e aggiunge una nuova riga, restituendo la stringa.
package main
import "fmt"
func main() {
s := fmt.Sprintln("x", 1, "y", 2)
fmt.Print(s)
}Scegliere lo strumento giusto
Scelga in base alla destinazione:
- Serve una stringa? Utilizzi
Sprintf. - Sta scrivendo su stdout? Utilizzi
Printf. - Sta scrivendo in un file, buffer o flusso di errore? Utilizzi
Fprintf.
package main
import (
"fmt"
"os"
)
func main() {
s := fmt.Sprintf("count=%d", 3)
fmt.Fprintf(os.Stdout, "%s\n", s)
}Verifica rapida
Quale funzione restituisce il testo formattato invece di stamparlo?
Riepilogo: Sprintf e Fprintf
Ha imparato a conoscere la famiglia di funzioni di formattazione:
Sprintfrestituisce una stringa.Fprintfscrive in qualsiasiio.Writer(stdout, stderr, buffer e builder).- Le varianti senza
fusano la formattazione predefinita.
package main
import (
"fmt"
"strings"
)
func main() {
var b strings.Builder
fmt.Fprintf(&b, "result=%s", fmt.Sprintf("%d%%", 80))
fmt.Println(b.String())
}Domande Frequenti
La lezione «Sprintf e Fprintf» è gratuita?
Sì — il testo completo di «Sprintf e Fprintf» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Go Academy, passa a CoddyKit PRO. Il corso Go Academy include 4 lezioni in totale.
Cosa imparerò in «Sprintf e Fprintf»?
Formattare in stringhe e writer Eserciti Go Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Go Academy?
Non è richiesta alcuna esperienza precedente. Go Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.
Quanto tempo richiede la lezione «Sprintf e Fprintf»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Go Academy?
Sì. Ogni lezione Go Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Verbi di Printf
- Sprintf e Fprintf
- L'interfaccia Stringer
- Scansione dell'input