[Go] Package fmt

Package fmt

서식화된 문자열의 입출력 패키지 fmt.

Table of Contents

fmt Basic

Print

fmt 패키지내의 Print 관련 함수(또는 메서드)는 아래와 같다.

↑ return to TOC

Scan

fmt 패키지내의 Scan 관련 함수(또는 메서드)는 아래와 같다.

↑ return to TOC

fmt 코드 열어보기

pp 구조체

pp 구조체는 프린터의 상태를 담아 둔다.

type pp struct {
    buf        buffer
    arg        interface{}
    value      reflect.Value
    fmt        fmt
    reordered  bool
    goodArgNum bool
    panicking  bool
    erroring   bool
    wrapErrs   bool
    wrappedErr error
}

↑ return to TOC

ss 구조체

type ss struct {
    rs     io.RuneScanner
    buf    buffer
    count  int
    atEOF  bool
    ssave
}

↑ return to TOC

fmt.Print

func Print(a ...interface{})(n int, err error) {
    return Fprint(os.Stdout, a...)
}

↑ return to TOC

fmt.Println

Println == Print line

PrintlnPrint와 비슷하지만 마지막으로 전달된 argument의 마지막에 new line(\n)을 추가시킨다.

func Println(a ...interface{}) (n int, err error) {
    return Fprintln(os.Stdout, a)
}

↑ return to TOC

fmt.Printf

Printf == Print formatter
서식 지정자(format specifier)와 함께 쓰인다.

func Printf(format string, a ...interface{}) (n int, err error) {
    return Fpintf(os.Stout, format, a )
}

↑ return to TOC

fmt.Fprintln

func Fprintln(w io.Writer, a...interface{}) (n int, err error) {
    p := newPrinter()
    p.doPrintln(a)
    n, err = w.Write(p.buf)
    p.free()
    return
}

↑ return to TOC

fmt.Sprint

Sprint == String print

func Sprint(a ...interface{}) string {
    p := newPrinter()
    p.doPrint(a)
    s := string(p.buf)
    p.free()
    return s
}

↑ return to TOC

fmt.Sprintf

Sprintf == String print format

Sprintf 는 전달받은 서식지정자의 형태로 문자열을 프린트해준다.

func Sprintf(format string, a ...interface{}) string {
    p := newPrinter()
    p.doPrintf(format, a)
    s := string(p.buf)
    p.free()
    return s
}

↑ return to TOC

fmt.Sprintln

Sprintln == String print line

여러 argument 를 받은 후 마지막 argument 뒤에 new line 을 추가해준다.

func Sprintln(a ...interface{}) string {
    p := newPrinter()
    p.doPrintln(a)
    s := string(p.buf)
    p.free()
    return s
}

↑ return to TOC

fmt.Sscan

func Sscan(str string, a ...interface{}) (n int, err error) {
    return Fascan((*stringReader)(&str), a...)
}

↑ return to TOC