print și println în Go

Funcții predefinite de depanare care scriu pe ieșirea de eroare (stderr); în programe folosește pachetul fmt.

Sintaxă
func print(args ...Type)
func println(args ...Type)

Ce face print și println

print și println sunt funcții predefinite, disponibile fără niciun import. Scriu pe ieșirea de eroare (stderr), nu pe ieșirea standard. println pune spațiu între argumente și un rând nou la final; print nu pune nimic între ele.

Formatul lor este ales de implementare și s-a schimbat între versiuni (versiunile vechi de Go afișau 2.5 ca +2.500000e+000), iar pentru un slice afișează doar lungimea, capacitatea și o adresă ([2/2]0x14000012345); struct-urile nu pot fi afișate deloc. Documentația spune că nu este garantat că vor rămâne în limbaj. Pentru orice program real folosește fmt.Println, fmt.Printf sau pachetul log.

Parametri

Parametru Descriere
args Valori de tipuri simple: numere, texte, bool, pointeri.

Exemple

Exemplul 1: Formatul lui print și println

Rezultatul de mai jos a fost scris pe stderr.

package main

func main() {
    println("Ana are", 3, "mere")
    println(2.5, true)
    print("fără", "spații", 42, "\n")
}

Rezultat

Ana are 3 mere
2.5 true
fărăspații42

Exemplul 2: Varianta recomandată cu fmt

package main

import "fmt"

func main() {
    fmt.Println("Ana are", 3, "mere")
    fmt.Println(2.5, true)
    fmt.Printf("%.2f lei\n", 2.5)
}

Rezultat

Ana are 3 mere
2.5 true
2.50 lei

Greșeli frecvente

  • Folosirea lui println pentru rezultatul programului: merge pe stderr, deci nu apare când redirecționezi ieșirea (program > rezultat.txt).
  • println cu un struct: illegal types for operand: println. Cu un slice compilează, dar afișează ceva ca [2/2]0x14000012345. Folosește fmt.Println.

Comenzi înrudite

  • package și pachetul main: Fiecare fișier Go începe cu package; pachetul main cu funcția main() devine un program executabil.
  • tipuri de bază: Tipurile simple din Go: bool, string, întregi cu și fără semn, numere reale, complexe, byte și rune.