이 글은 golang에 관한 관련 지식을 제공합니다. 주로 golang의 자리 표시자에 대해 설명합니다. 관심 있는 친구들이 꼭 읽어 보시기 바랍니다.
xdm, C/C++ 언어를 작성할 때 %s, %d, %c, %p 등과 같은 형식 제어 문자가 있습니다.
golang을 작성할 때 해당 형식 제어도 있습니다. 자리 표시자라고도 하는 문자를 작성하려면 이에 해당하는 데이터가 필요합니다.
위 자리 표시자의 효과와 모양을 보려면 데모를 작성하세요
type Animal struct { hobby string } func main() { name := "xiaomotong" age := 19 hh := Animal{"basketball"} fmt.Printf("name = %s , age = %d , hh = %v\n\n", name, age, hh) fmt.Printf("hh = %+v , hh= %#v\n\n", hh, hh) fmt.Printf("name = %T , age = %T , hh = %T\n\n", name, age, hh) fmt.Printf("%q", 0x8989) }
위 코드의 실행 효과
# go run main.go name = xiaomotong , age = 19 , hh = {basketball} hh = {hobby:basketball} , hh= main.Animal{hobby:"basketball"} name = string , age = int , hh = main.Animal '覉'
위의 효과에서 볼 수 있습니다.
%q는 Go 구문으로 안전하게 이스케이프된 작은따옴표로 둘러싸인 문자 리터럴을 나타냅니다. xdm에 관심이 있다면 인쇄 및 디버깅을 시도하여 확인할 수 있습니다. 효과
$s는 문자열을 나타냅니다.
$d는 10진수를 나타냅니다.
%v는 기본 형식을 나타냅니다.
%+v는 구조가 인쇄될 때 해당 필드 이름이 추가됨을 나타냅니다.
%#v는 해당 데이터 구조의 골랭 언어를 나타냅니다. 상황을 표현합니다.
계속해서 데모를 작성하여 효과를 확인하세요. 기하학:
func main() { a := true num := 88 uni := 0x8989 fmt.Printf("%t\n", a) fmt.Printf("%b\n", num) fmt.Printf("%c\n", 0x8989) fmt.Printf("uni = %U , uni = %#U\n", uni, uni) }
위의 코드 실행 효과는 다음과 같습니다.
# go run main.go true 1011000 覉 uni = U+8989 , uni = U+8989 '覉'
위의 효과에서 볼 수 있습니다.
%t는 부울 자리 표시자를 나타냅니다.
%b는 이진 데이터를 나타냅니다.
% c는 해당 유니코드 코드 포인트가 나타내는 문자를 나타냅니다.
%U는 데이터가 유니코드 형식 사양으로 변환될 수 있음을 의미합니다. 즉,
%#U 시작 +를 사용하면 데모에서 데이터가 해당 유니코드 문자로 변환될 수 있음을 의미합니다. 텍스트는 jī
func main() { num := 888 fNum := 888.99 fmt.Printf("num = %2d , num = %07d\n", num, num) fmt.Printf("num = %x , num = %#x\n", num, num) fmt.Printf("num = %f , num = %.3f\n", fNum, fNum) }
위 코드 실행 효과는 다음과 같습니다.
# go run main.go num = 888 , num = 0000888 num = 378 , num = 0x378 num = 888.990000 , num = 888.990
위 효과에서 알 수 있습니다.
%2d는 총 2자리를 의미합니다. 2자리 미만인 경우 앞에 0을 추가합니다.
%07d는 총 7자리를 의미하며, 7보다 작으면 숫자 앞에 0이 옵니다.
%x는 16진수를 나타내며 모두 소문자입니다.
%#x 16진수를 나타내고, 0x
%f 앞에 0x
%f가 붙어 부동 소수점형 데이터를 나타내며, 기본값은 소수점 이하 6자리 유지
%#p
func main() { ptr := "xiaomotong" fmt.Printf("ptr = %p , ptr = %#p\n", &ptr, &ptr) }
위 코드가 실행됩니다. 효과는 다음과 같습니다.
# go run main.go ptr = 0xc42000e1e0 , ptr = c42000e1e0
이 됩니다. %#p는 16진수 포인터 주소를 나타내며 0x는 없습니다[관련 권장사항:
Go video Tutorial
위 내용은 golang 자리 표시자를 완전히 이해하기 위한 기사 1개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!