IT 프로그래밍/Golang

[Golang](3) Go언어 형식지정자 총정리

잉휴 2021. 6. 17. 20:42

오늘은 문법 두 번째 시간입니다

 

저번 시간에는 go.mod , main.exe 와 go파일을 만들어보았습니다

https://memoty.tistory.com/43

 

[GoLang](2) Go 시작하기 .go와.exe파일 생성 & 기초문법

환경구축이후 가장먼저 해야할 실행 파일 생성방법에 대해 알아보도록 하겠습니다 ★요약★은 아래에 ↓ (핑크하이라이트 찾기) 1. mkdir hello2(파일만들기) go mod init main(go.mode만들기) cmd창으로 go.

memoty.tistory.com

 

다음과 같은 출력하기 위한 기본 

형식지정자에 대해 알아보겠습니다


<자주 쓰이는 형식지정자>

 

%b 이진수

fmt.Printf("%8b\n", a) 
결과 :       11
fmt.Printf("%08b\n", a)
결과 : 00000011

%d 십진수

fmt.Printf("%d", 3)
결과 : 3
fmt.Printf("ABC %d DEF \n", 13)
결과 : ABC 13 DEF

%c 문자열 

fmt.Printf("%c%c \n", 'g', 'o')
-> %c%c 하면 문자2개를 쓸 수 있다 (유니코드 1개당이라서)
결과 : go

%f 실수(소수점 포함) 

fmt.Printf("%04.1f\n", 3.14)
결과 : 03.1

%o 8진수

fmt.Printf("%o\n", 24)
결과 : 30

%t bool (Go언어에서는 boolean (x) , bool(o) 불이 맞는 표현)

fmt.Printf("%t\n", 1 == 1)
결과 : true

%x 16진수 (생략)

%s 문자열

fmt.Printf("\"이전\" %s", "다음")
결과 : "이전" 다음
+쌍따옴표를 넣기 위해 \" \"를 삽입

 

실행화면

 

<그 외>

 

%+v 타입과 값을 함께 표시 

package main

import f "fmt"

type Me struct {
	name string
	age  int
}

func main() {
	m := Me{"luna", 25}
	f.Printf("%+v", m)
}

결과:{name:luna age:25}

%#v으로 입력하면
결과 : main.Me{name:"luna", age:25}

%T 타입을 표시

func main() {
	//string name="luna"
	var a = 5
	f.Printf("%T", a)
}

결과 : int

%q 특수문자를 문자 그대로 표현하기 위해

-> 보통은 ""가 %와 일대일로 매칭되어있지만 두 단어를 따로 넣고 싶을 때 쓰이는 것 같다

func main() {
	f.Printf("%q\n", `"첫번째글자" "두번째글자"`)
    
결과 : "\"첫번째글자\" \"두번째글자\""

%e 실수를 지수표기법으로 표시

func main() {
	f.Printf("%e", 3.14)
    
결과 : 3.140000e+00

%p 포인터 ↓ fmt.Printf("p1과 p2의 주소는: %p 와 %p\n", p1, p2)

func main() {
	i := 1
	j := 1
	var p1 *int = &i
	var p2 *int = &j
	fmt.Println(p1 == p2)
	fmt.Printf("p1과 p2의 주소 : %p와 %p\n", p1, p2)
	fmt.Printf("가리키는 값은 %d와 %d\n", *p1, *p2)
}

p1과 p2의 주소 : 0xc0000120a0와 0xc0000120a8
가리키는 값은 1와 1

실행화면

 

※문자열은 코드작성시 '작은따옴표' 필수입니다!

※ a%b를 하고 싶을땐 fmt.Printf("a %% b =",a%b) 라고 %를 두 번 적어야

%를 특수문자가 아닌 나눗셈으로 인식합니다  

 

수고하셨습니다!