1. 출력 함수 사용하기
페이지 정보
작성자 관리자 댓글 0건 조회 3,576회 작성일 19-03-15 08:14본문
1. 출력 함수 사용하기
GUI가 아닌 명령줄 프로그램을 작성한다면 가장 많이 사용하게 되는 출력 방법이 콘솔(터미널)에 글자를 출력하는 표준 출력이다.
다음은 fmt 패키지에서 제공하는 표준 출력 함수 이다.
fmt.Print() : 값을 그자리에 출력한다. 새 줄로 넘어가지 않는다.
fmt.Println() : 값을 출력한 뒤 새출로 넘어간다.
fmt.Printf() : 형식을 지정하여 값을 출력한다.
fmt.Println함수를 알아보겠다.
package main
import "fmt"
func main() {
var num1 int = 10
var num2 float32 = 3.2
var num3 complex64 = 2.5 + 8.1i
var s string = "Hello, world!"
var b bool = true
var a []int = []int{1, 2, 3}
var m map[string]int = map[string]int{"Hello": 1}
var p *int = new(int)
type Data struct{ a, b int }
var data Data = Data{1, 2}
var i interface{} = 1
fmt.Println(num1) // 10: 정수 출력
fmt.Println(num2) // 3.2: 실수 출력
fmt.Println(num3) // (2.5+8.1i): 복소수 출력
fmt.Println(s) // Hello, world!: 문자열 출력
fmt.Println(b) // true: 불 출력
fmt.Println(a) // [1 2 3]: 슬라이스 출력
fmt.Println(m) // map[Hello:1]: 맵 출력
fmt.Println(p) // 0xc0820062d0: 포인터(메모리 주소) 출력
fmt.Println(data) // {1 2}: 구조체 출력
fmt.Println(i) // 1: 인터페이스 출력
fmt.Println(num1, num2, num3, s, b) // 10 3.2 (2.5+8.1i) Hello, world! true
fmt.Println(p, a, m) // 0xc0820062d0 [1 2 3] map[Hello:1]
fmt.Println(data, i) // {1 2} 1
}
다음은 출력 형태를 직접 정할 수 있는 fmt.Printf 함수이다.
package main
import "fmt"
func main() {
var num1 int = 10
var num2 float32 = 3.2
var num3 complex64 = 2.5 + 8.1i
var s string = "Hello, world!"
var b bool = true
var a []int = []int{1, 2, 3}
var m map[string]int = map[string]int{"Hello": 1}
var p *int = new(int)
type Data struct{ a, b int }
var data Data = Data{1, 2}
var i interface{} = 1
fmt.Printf("정수: %d\n", num1) // 정수: 10
fmt.Printf("실수: %f\n", num2) // 실수: 3.2
fmt.Printf("복소수: %f\n", num3) // 복소수: (2.500000+8.100000i)
fmt.Printf("문자열: %s\n", s) // 문자열: Hello, world!
fmt.Printf("불: %t\n", b) // 불: true
fmt.Printf("슬라이스: %v\n", a) // 슬라이스: [1 2 3]
fmt.Printf("맵: %v\n", m) // 맵: map[Hello:1]
fmt.Printf("포인터: %p\n", p) // 포인터: 0xc0820062d0 (메모리 주소)
fmt.Printf("구조체: %v\n", data) // 구조체: {1 2}
fmt.Printf("인터페이스: %v\n", i) // 인터페이스: 1
fmt.Printf("%d %f %s\n", num1, num2, s) // 10 3.200000 Hello, world!
}
다음은 형식 지정자에 간격, 정밀도를 지정하는 방법이다.
package main
import "fmt"
func main() {
fmt.Printf("%3d\n", 1) // 1
fmt.Printf("%3d\n", 12345) // 12345
fmt.Printf("%03d\n", 1) // 001
fmt.Printf("%03d\n", 12345) // 12345
fmt.Printf("%+d, %d\n", 1, -1) // +1
fmt.Printf("%9f\n", 1.1234567) // 1.123457
fmt.Printf("%09f\n", 1.1234567) // 01.123457
fmt.Printf("%.2f\n", 1.1234567) // 1.12
fmt.Printf("%9.2f\n", 1234567.0) // 1234567.00
}
%v : 모든 값을 사용할 수 있는 기본 지정자이며 슬라이스, 맵, 포인터, 구조체, 인터페이스 등에 사용된다.
%+v : +를 붙이면 구조체의 필드도 함께 표시된다.
%#v : 타입과 값을 함께 표현한다.
%T : 타입을 표현한다. ( 예 : int, map[string]int )
%q : 문자열을 escape하여 표현한다. 특수문자를 문자 그대로 표현하기 위해 문자 앞에 역슬래시를 붙이는작업을 escape라고 한다.
댓글목록
등록된 댓글이 없습니다.