Golang의 형식 문자열 이해
Min-jun Kim
Dev Intern · Leapcell

Golang은 일반적으로 Go로 알려져 있으며, fmt
패키지를 통해 문자열을 형식화하는 강력하고 유연한 방법을 제공합니다. 이 패키지는 개발자가 문자열, 숫자 및 기타 데이터 유형을 읽기 쉽고 사용자 정의 가능한 방식으로 형식화할 수 있도록 다양한 기능을 제공합니다.
기본 문자열 형식화
fmt
패키지의 Sprintf
함수는 문자열을 형식화하는 데 일반적으로 사용됩니다. 형식 지정자와 해당 값을 사용하여 형식화된 문자열을 반환합니다.
package main import ( "fmt" ) func main() { name := "Alice" age := 30 formattedString := fmt.Sprintf("Name: %s, Age: %d", name, age) fmt.Println(formattedString) }
출력:
Name: Alice, Age: 30
이 예에서:
%s
는 문자열의 자리 표시자입니다.%d
는 정수의 자리 표시자입니다.
일반적인 형식 지정자
다음은 Go에서 자주 사용되는 형식 지정자입니다.
%v
: 값의 기본 형식입니다.%#v
: 값의 Go 구문 표현입니다.%T
: 값의 유형입니다.%%
: 리터럴 퍼센트 기호입니다.
정수의 경우:
%b
: 이진수 표현입니다.%c
: 유니코드 코드 포인트에 해당하는 문자입니다.%d
: 십진수 표현입니다.%o
: 8진수 표현입니다.%x
: 16진수 표현입니다 (소문자).%X
: 16진수 표현입니다 (대문자).
부동 소수점 및 복소수의 경우:
%e
: 과학적 표기법 (예:1.23e+03
).%f
: 소수점이지만 지수는 없습니다 (예:123.456
).%g
: 값의 정밀도에 따라%e
또는%f
를 사용합니다.
너비 및 정밀도
형식이 지정된 출력의 너비와 정밀도를 제어할 수 있습니다. 예를 들어:
package main import ( "fmt" ) func main() { pi := 3.141592653589793 formattedPi := fmt.Sprintf("%.2f", pi) fmt.Println(formattedPi) }
출력:
3.14
여기서 %.2f
는 부동 소수점 숫자를 소수점 이하 두 자리로 형식화합니다.
패딩 및 정렬
Golang은 숫자와 문자열의 패딩 및 정렬을 허용합니다.
%6d
: 적어도 6자 너비가 되도록 공백으로 정수를 패딩합니다.%-6d
: 6자 너비 내에서 정수를 왼쪽 정렬합니다.%06d
: 적어도 6자 너비가 되도록 0으로 정수를 패딩합니다.
예:
package main import ( "fmt" ) func main() { number := 42 fmt.Printf("%6d\n", number) // 공백으로 오른쪽 정렬 fmt.Printf("%-6d\n", number) // 왼쪽 정렬 fmt.Printf("%06d\n", number) // 0으로 패딩 }
출력:
42
42
000042
문자열 형식화
문자열의 경우 너비와 정렬을 지정할 수 있습니다.
%10s
: 10자 너비 내에서 문자열을 오른쪽 정렬합니다.%-10s
: 10자 너비 내에서 문자열을 왼쪽 정렬합니다.
예:
package main import ( "fmt" ) func main() { str := "Go" fmt.Printf("%10s\n", str) // 오른쪽 정렬 fmt.Printf("%-10s\n", str) // 왼쪽 정렬 }
출력:
Go
Go
결론
Golang의 fmt
패키지는 문자열, 숫자 및 기타 데이터 유형을 형식화하기위한 포괄적인 도구 세트를 제공합니다. 형식 지정자, 너비, 정밀도 및 정렬 옵션을 마스터함으로써 개발자는 특정 요구 사항에 맞는 명확하고 잘 구성된 출력을 생성 할 수 있습니다.
FAQs
%v
는 모든 값에 대한 기본 형식을 인쇄합니다.
%.2f
를 사용하여 float를 소수점 이하 두 자리로 형식화합니다.
%06d
를 사용하여 정수를 0으로 패딩하여 형식화합니다.
Go 프로젝트 호스팅을 위한 최고의 선택, Leapcell입니다.
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
다국어 지원
- Node.js, Python, Go 또는 Rust로 개발하세요.
무료로 무제한 프로젝트 배포
- 사용량에 대해서만 지불하세요. 요청이나 요금이 없습니다.
탁월한 비용 효율성
- 유휴 요금 없이 사용한 만큼만 지불하세요.
- 예: $25는 평균 응답 시간 60ms에서 694만 건의 요청을 지원합니다.
간소화된 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
간편한 확장성 및 고성능
- 고도의 동시성을 쉽게 처리할 수 있도록 자동 확장이 가능합니다.
- 운영 오버헤드가 전혀 없습니다. 구축에만 집중하세요.
문서에서 자세히 알아보세요!
X에서 저희를 팔로우하세요: @LeapcellHQ