| Go는  | |
| package main
 | |
| import "fmt"
import "os"
 | |
| type point struct {
	x, y int
}
 | |
| func main() {
 | |
| Go는 일반적인 값들을 포맷팅 하기 위해 설계된 몇 가지 출력 "verbs"를 제공합니다. 예를 들어, 다음은  | 	p := point{1, 2}
	fmt.Printf("%v\n", p)
 | 
| 값이 구조체인 경우,  | 	fmt.Printf("%+v\n", p)
 | 
| 
 | 	fmt.Printf("%#v\n", p)
 | 
| 값의 타입을 출력하기 위해선,  | 	fmt.Printf("%T\n", p)
 | 
| 불리언 포맷팅은 직관적입니다. | 	fmt.Printf("%t\n", true)
 | 
| 정수 포맷팅에는 여러가지 옵션이 있습니다. 표준적인 10진수 포맷팅은  | 	fmt.Printf("%d\n", 123)
 | 
| 다음은 바이너리 표현을 출력합니다. | 	fmt.Printf("%b\n", 14)
 | 
| 다음은 주어진 정수에 해당하는 문자를 출력합니다. | 	fmt.Printf("%c\n", 33)
 | 
| 
 | 	fmt.Printf("%x\n", 456)
 | 
| 실수에 대해서도 몇 가지 포맷팅 옵션이 있습니다. 기본적인 십진수 포맷팅에 대해서는  | 	fmt.Printf("%f\n", 78.9)
 | 
| 
 | 	fmt.Printf("%e\n", 123400000.0)
	fmt.Printf("%E\n", 123400000.0)
 | 
| 기본적인 문자열 출력에는  | 	fmt.Printf("%s\n", "\"string\"")
 | 
| Go 소스에서와 같이 문자열을 쌍따옴표로 묶으려면,  | 	fmt.Printf("%q\n", "\"string\"")
 | 
| 앞에서 본 정수와 마찬가지로,  | 	fmt.Printf("%x\n", "hex this")
 | 
| 포인터의 표현(메모리 표현)을 출력하기 위해선,  | 	fmt.Printf("%p\n", &p)
 | 
| 숫자를 포맷팅할때 결과 형태의 너비와 정확도를 조정하고 싶을때가 종종 있습니다. 정수의 너비를 지정하려면, 숫자를  | 	fmt.Printf("|%6d|%6d|\n", 12, 345)
 | 
| 출력된 실수에 너비를 지정할 수도 있지만, 일반적으로는 windth.precision 구문을 사용해 정밀도를 제한하고자 합니다. | 	fmt.Printf("|%6.2f|%6.2f|\n", 1.2, 3.45)
 | 
| 좌측 정렬을 위해선,  | 	fmt.Printf("|%-6.2f|%-6.2f|\n", 1.2, 3.45)
 | 
| 문자열을 포맷팅할 때, 특히 테이블같은 형태로 정렬하기 위해 너비를 조정하고 싶을때도 있습니다. 다음은 기본적인 우측 정렬 너비의 예입니다. | 	fmt.Printf("|%6s|%6s|\n", "foo", "b")
 | 
| 숫자에서와 마찬가지로 좌측 정렬을 위해선  | 	fmt.Printf("|%-6s|%-6s|\n", "foo", "b")
 | 
| 이제까지 우린  | 	s := fmt.Sprintf("a %s", "string")
	fmt.Println(s)
 | 
| 
 | 	fmt.Fprintf(os.Stderr, "an %s\n", "error")
}
 | 
| $ go run string-formatting.go
{1 2}
{x:1 y:2}
main.point{x:1, y:2}
main.point
true
123
1110
!
1c8
78.900000
1.234000e+08
1.234000E+08
"string"
"\"string\""
6865782074686973
0x42135100
|    12|   345|
|  1.20|  3.45|
|1.20  |3.45  |
|   foo|     b|
|foo   |b     |
a string
an error
 | 
다음 예제: 정규표현식.