Go 언어

본문 바로가기
사이트 내 전체검색


Go 언어
Go 언어

1. 출력 함수 사용하기

페이지 정보

작성자 관리자 댓글 0건 조회 2,493회 작성일 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라고 한다.



댓글목록

등록된 댓글이 없습니다.


개인정보취급방침 서비스이용약관 모바일 버전으로 보기 상단으로

TEL. 063-469-4551 FAX. 063-469-4560 전북 군산시 대학로 558
군산대학교 컴퓨터정보공학과

Copyright © www.leelab.co.kr. All rights reserved.