Updated:

1 minute read

개요

  • 동사 설명
    %d 십진수
    %o 8진수
    %x 16진수(소문자)
    %X 16진수(대문자)
    %f/%F 부동 소수점
    %b 정수의 경우 2진수, 실수의 경우 2의 제곱
    %e 지수 표기법으로 표현(소문자)
    %E 지수 표기법으로 표현(대문자)
    %g 지수가 크면 %e, 작으면 %f
    %G 지수가 크면 %E, 작으면 %F
    %c
    %s 문자열
    %U 유니코드
    %t 부울
    %T 타입
    %% 백분율 기호 리터럴
    %q 문자열을 escape하여 표현
    %p 주소값 표현
    %v 타입에 따라 적절히 형식화된 값
    %+v 타입에 따라 변수이름을 포함하여 적절히 형식화된 값
    %#v 코드 그대로 형식화된 값
  • 너비/소수점 자리수 지정 가능


예제

  • 코드
     package main
        
     import (
     	"fmt"
     )
        
     type test struct {
     	a int
     	b string
     }
        
     func main() {
     	fmt.Printf("1. (%d)\n", 1)
     	fmt.Printf("2. (%3d)\n", 1)
     	fmt.Printf("3. (%o)\n", 10)
     	fmt.Printf("4. (%x)\n", 26)
     	fmt.Printf("5. (%X)\n", 26)
     	fmt.Printf("6. (%f)\n", 1.1)
     	fmt.Printf("7. (%.3f)\n", 1.1)
     	fmt.Printf("8. (%7.3f)\n", 1.1)
     	fmt.Printf("9. (%F)\n", 1.1)
     	fmt.Printf("10. (%b)\n", 8)
     	fmt.Printf("11. (%b)\n", 8.0)
     	fmt.Printf("12. (%e)\n", 1.0)
     	fmt.Printf("13. (%E\n", 1.0)
     	fmt.Printf("14. (%g), (%g)\n", 1.1, 1111111.1)
     	fmt.Printf("15. (%G), (%G)\n", 1.1, 1111111.1)
     	fmt.Printf("16. (%c)\n", 'a')
     	fmt.Printf("17. (%s)\n", "abc")
     	fmt.Printf("18. (%U)\n", 'a')
     	fmt.Printf("19. (%t)\n", true)
     	fmt.Printf("20. (%T)\n", 1)
     	fmt.Printf("21. (%%)\n")
     	fmt.Printf("22. (%q)\n", `"a b" "c"`)
        
     	i := 1
     	fmt.Printf("23. (%p)\n", &i)
        
     	fmt.Printf("24. (%v)\n", test{1, "a"})
     	fmt.Printf("25. (%+v)\n", test{1, "a"})
     	fmt.Printf("26. (%#v)\n", test{1, "a"})
     }
    
  • 실행 결과
         1. (1)
         2. (  1)
         3. (12)
         4. (1a)
         5. (1A)
         6. (1.100000)
         7. (1.100)
         8. (  1.100)
         9. (1.100000)
         10. (1000)
         11. (4503599627370496p-49)
         12. (1.000000e+00)
         13. (1.000000E+00
         14. (1.1), (1.1111111e+06)
         15. (1.1), (1.1111111E+06)
         16. (a)
         17. (abc)
         18. (U+0061)
         19. (true)
         20. (int)
         21. (%)
         22. ("\"a b\" \"c\"")
         23. (0xc0000a6008)
         24. ({1 a})
         25. ({a:1 b:a})
         26. (main.test{a:1, b:"a"})