Marrë nga https://golang.org/pkg/fmt/
Të përgjithshme:
- %v – vlera në formatin standard. Gjatë printimit të strukteve, shenja plus para v (%+v) i paraqet edhe emrat e fushave
- %#v – Vlera.
- %T – Tipi i vlerës.
- %% – Shenja e përqindjes, nuk konsumon vlerë.
Boolean:
- %t – Fjala true ose false.
Numrat e plotë:
- %b – Baza 2, numra binarë (0 deri 1).
- %c – Karakteri sipas Unicode kod pointit korrespondues. fmt.Printf(“%c”, 1234) shfaq Ӓ.
- %d – Baza 10, numrat decimalë (0 deri 9).
- %o – Baza 8, numrat oktalë (0 deri 7).
- %q – Unicode karakteri i futur brenda apostrofave. fmt.Printf(“%q”, 1234) shfaq ‘Ӓ’.
- %x – Baza 16, numra heksadecimalë (0-F). Shkronja të vogla (a-f).
- %X – Baza 16, numra heksadecimalë (0-F). Shkronja të mëdha (A-F).
- %U – Formati i Unicode. fmt.Printf(“%U”, 1234) shfaq U+04D2.
Numrat me presje dhjetore dhe kompleksë:
- %b – Notacion shkencor pa decimale me eksponent të 2 në fuqi, p.sh. -123456p-78.
- %e – Notacion shkencor, p.sh. -1.234456e+78
- %E – Notacion shkencor, p.sh. -1.234456E+78
- %f – Numër me presje dhjetore, por pa eksponent, p.sh. 123.456
- %F – Sinonim i %f
- %g – %e për eksponentë të mëdhenj, %f përndryshe.
- %G – %E për eksponentë të mëdhenj, %F përndryshe.
Stringjet dhe bajt segmentet (slice):
- %s – Bajtë të painterpretuar të një stringu apo segmenti.
- %q – String u futur brenda thonjëzave.
- %x – Baza 16, shkronja të vogla, dy karaktere për bajt.
- %X – Baza 16, shkronja të mëdha, dy karaktere për bajt.
Segmentet:
- %p – Adresa e elementit me indeks 0 në notacionin me bazën 16, me 0x paraprijëse.
Pointer:
- %p – Notacion me bazën 16, me 0x paraprijëse.
- %b, %d, %o, %x dhe %X punojnë edhe me pointerë, duke e formatuar vlerën njëjtë sikur të ishte numër i plotë.
Formati standard për %v është:
- bool: %t
- int, int8 etc.: %d
- uint, uint8 etj.:** %d**, *%#x* nëse printohet me %#v
- float32, complex64, etj.: %g
- string: %s
- chan: %p
- pointer: %p
Në kuadër të pakos fmt
është i definuar interfejsi Stringer
i cili kërkon nga implementuesi që ta ketë funksionin String()
, me çka na mundësohet që një tip kompozit si strukti të mund të paraqitet si string gjatë printimit.
type Stringer interface {
String() string
}
E krijojmë funksionin String() ku si pranues e caktojmë një strukt (Anetarj): func (p Anetari) String() string
, ku si vlerë kthyese e funksionit do të jetë string. Brenda funksionit definojmë se si të kombinohen vlerat e fushave të ndryshme të struktit Anetari për ta formuar një string, pra që përmbajtja e struktit të prezantohet në formë të një rreshti tekstual.
package main
import "fmt"
type Anetari struct {
Emri string
Gjinia string
Mosha int
}
func (p Anetari) String() string {
return fmt.Sprintf("%v, %v", p.Emri, p.Mosha)
}
func main() {
a := Anetari{"Arben", "m", 32}
b := Anetari{"Fjolla", "f", 24}
fmt.Println(a)
fmt.Println(b)
}
https://play.golang.org/p/8EFAyafWgCy
Rezultati:
Arben, 32
Fjolla, 24