목차
- Go 출력 - Print() 함수
- Go 출력 - Println() 함수
- Go 출력 - Printf() 함수
- Go Printf() 함수 - General 포맷동사
- Go Printf() 함수 - Integer 포맷동사
- Go Printf() 함수 - String 포맷동사
- Go Printf() 함수 - Boolean 포맷동사
- Go Printf() 함수 - Float 포맷동사
Go는 3가지 출력 함수 지원.
Print(), Println(), Printf()
Go 출력 - Print() 함수
독립변수를 기본 형태 그대로 출력.
[예제1] - 빈칸 없이 옆으로 나열해 출력
package main
import ("fmt")
func main() {
var site, host string = "홈짱닷컴","Homzzang.com"
fmt.Print(site) // 홈짱닷컴
fmt.Print(host) // Homzzang.com
}
결과값: 홈짱닷컴Homzzang.com
[예제2] - 줄바꿈하려면, "\n" 사용.
※ \n 줄바꿈 기호는 문자열 일종이므로, 큰따옴표로 묶어야 함.
package main
import ("fmt")
func main() {
var site, host string = "홈짱닷컴","Homzzang.com"
fmt.Print(site, "\n") // 홈짱닷컴
fmt.Print(host, "\n") // Homzzang.com
}
결과값:
홈짱닷컴
Homzzang.com
[예제3] - 1개의 print() 함수로 여러 독립변수 출력 가능.
package main
import ("fmt")
func main() {
var site, host string = "홈짱닷컴","Homzzang.com"
fmt.Print(site, "\n", host)
}
결과값:
홈짱닷컴
Homzzang.com
[예제4] - 독립변수 간 사이에 공백 주려면, " " 사용.
package main
import ("fmt")
func main() {
var site, host string = "홈짱닷컴","Homzzang.com"
fmt.Print(site, " ", host) // 홈짱닷컴 Homzzang.com
}
[예제5] - 독립변수가 둘 다 문자열이 아닌 경우, 사이에 공백 자동 추가됨.
※ 둘 중 하나라도 문자열이면 출력 시 딱 붙음.
package main
import ("fmt")
func main() {
var a, b = 3, 4
fmt.Print(a,b) // 3 4
}
Go 출력 - Println() 함수
print() 함수와 유사하나, 아래 2가지 사항이 다름.
- 독립변수 사이에 공백 자동 추가.
- 독립변수 마지막에서 줄바꿈 됨.
[예제]
package main
import ("fmt")
func main() {
var site,host string = "홈짱닷컴","Homzzang.com"
var intro = "코딩강의"
fmt.Println(site,host) // 홈짱닷컴 Homzzang.com
fmt.Println(intro) // 코딩강의
}
결과값:
홈짱닷컴 Homzzang.com
코딩강의
Go 출력 - Printf() 함수
지정된 포맷동사로 독립변수를 포맷 후, 출력함.
포맷동사는 %기호로 시작하며, 포맷 형식 지정.
(예)
%v : 독립변수의 값(value) 출력
%T : 독립변수의 타입(type) 출력
[예제]
package main
import ("fmt")
func main() {
var host string = "Homzzang.com"
var open int = 2012
fmt.Printf("host 변수 (값: %v / 타입: %T)\n", host, host)
fmt.Printf("open 변수 (값: %v / 타입: %T)", open, open)
}
결과값:
host 변수 (값: Homzzang.com / 타입: string)
open 변수 (값: 2012 / 타입: int)
Go Printf() 함수 - General 포맷동사
모든 자료형에 사용 가능한 포맷동사.
[종류] - 4가지
%v : 값을 기본 포맷으로 출력
%#v : 값을 Go 구문 포맷으로 출력
%T : 값의 타입 출력
%% : % 기호 출력
[예제]
package main
import ("fmt")
func main() {
var a = 1.23456789
var b = "Homzzang.com"
fmt.Printf("%v\n", a) // 1.23456789
fmt.Printf("%#v\n", a) // 1.23456789
fmt.Printf("%v%%\n", a) // 1.23456789%
fmt.Printf("%T\n", a) // float64
fmt.Printf("%v\n", b) // Homzzang.com
fmt.Printf("%#v\n", b) // "Homzzang.com"
fmt.Printf("%T\n", b) // string
}
Go Printf() 함수 - Integer 포맷동사
정수 데이터에 사용 가능한 포맷동사.
[종류]
%b : 2진수
%d : 10진수
%+d : 10진수 (항상 기호 표시)
%o : 8진수
%O : 8진수 (0o로 시작)
%x : 16진수 (소문자)
%X : 16진수 (대문자)
%#x : 16진수 (0x로 시작)
%4d : 공백 패딩 (너비4, 우측 정렬)
%-4d : 공백 패딩 (너비4, 좌측 정렬)
%04d : 제로패딩 (너비4)
[예제]
package main
import ("fmt")
func main() {
var a = 34
fmt.Printf("%b\n", a) // 100010
fmt.Printf("%d\n", a) // 34
fmt.Printf("%+d\n", a) // +34
fmt.Printf("%o\n", a) // 42
fmt.Printf("%O\n", a) // 0o42
fmt.Printf("%x\n", a) // 22
fmt.Printf("%X\n", a) // 22
fmt.Printf("%#x\n", a) // 0x22
fmt.Printf("[%4d]\n", a) // [ 34]
fmt.Printf("[%-4d]\n", a) // [34 ]
fmt.Printf("[%04d]\n", a) // [0034]
}
Go Printf() 함수 - String 포맷동사
문자열 데이터에 사용 가능한 포맷동사.
[종류]
%s - 문자열 값을 기본 형태로 출력
%q - 문자열 값을 큰따옴표로 묶어 출력
%8s - 문자열 값을 기본 형태로 출력 (너비8, 우측 정렬)
%-8s - 문자열 값을 기본 형태로 출력 (너비8, 좌측 정렬)
%x - 문자열 값을 byte 값으로 된 16진 덤프로 출력
% x - 문자열 값을 공백 가진 16진 덤프로 출력
[예제]
package main
import ("fmt")
func main() {
var hi = "Hello"
fmt.Printf("%s\n", hi) // Hello
fmt.Printf("%q\n", hi) // "Hello"
fmt.Printf("[%8s]\n", hi) // [ Hello]
fmt.Printf("[%-8s]\n", hi) // [Hello ]
fmt.Printf("%x\n", hi) // 48656c6c6f
fmt.Printf("% x\n", hi) // 48 65 6c 6c 6f
}
Go Printf() 함수 - Boolean 포맷동사
참거짓 데이터엣 사용 가능한 포맷동사.
[종류]
%t - true/false 형식의 참거짓 값 출력 (%v와 동일)
[예제]
package main
import ("fmt")
func main() {
var a = true
fmt.Printf("%t\n", a) // true
fmt.Printf("%v\n", a) // true
}
Go Printf() 함수 - Float 포맷동사
부동소수 데이터에 사용 가능한 포맷동사.
[종류]
%e - 지수 e 갖는 과학적 표기법
%f - 지수 없는 소수점 형태
%.2f - 기본너비, 소수점 2자리
%6.2f - 너비6, 소수점 2자리
%g - 필요에 따라 지수, 필요한 숫자만 표시
[예제]
package main
import ("fmt")
func main() {
var a = 1.23456789
fmt.Printf("%e\n", a) // 1.234568e+00
fmt.Printf("%f\n", a) // 1.234568
fmt.Printf("[%.2f]\n", a) // [1.23]
fmt.Printf("[%6.2f]\n", a) // [ 1.23]
fmt.Printf("%g\n", a) // 1.23456789
}
최신댓글