%t true 或 false
%p 十六进制表示,前缀 0x
Go 언어의 출력 방법은 무엇입니까?
출력 방법: 1. 콘솔에 출력할 수 있는 Print() 함수(형식은 허용되지 않음), 구문은 "fmt.Print(str)"입니다. 2. 콘솔에 출력할 수 있는 Println() 함수; 콘솔 및 랩, 구문 "fmt.Println(tmp)" 3. Printf() 함수는 형식화된 문자열만 인쇄할 수 있습니다. 4. Sprintf() 함수는 문자열을 형식화하고 반환할 수 있습니다. 포맷되어 "io.Writers"로 출력됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
Go 언어의 여러 출력 방법의 차이점
Print, Println, Printf<code> , <code>
、<strong>Sprintf</strong>
、Fprintf
Sprintf ,
Fprintf
은 all fmt 패키지의 공개 메소드는 정보를 인쇄할 때 이러한 기능을 사용해야 합니다. 그렇다면 이들 기능의 차이점은 무엇입니까?
Print: 输出到控制台(不接受任何格式化,它等价于对每一个操作数都应用 %v) fmt.Print(str) Println: 输出到控制台并换行 fmt.Println(tmp) Printf : 只可以打印出格式化的字符串。只可以直接输出字符串类型的变量(不可以输出整形变量和整形 等) fmt.Printf("%d",a) Sprintf:格式化并返回一个字符串而不带任何输出。 s := fmt.Sprintf("a %s", "string") fmt.Printf(s) Fprintf:格式化并输出到 io.Writers 而不是 os.Stdout。 fmt.Fprintf(os.Stderr, “an %s\n”, “error”)
출력 정보의 형식을 지정해야 하는 경우 일반적으로 Printf를 선택합니다. 그 외의 경우에는 Println
Printf를 사용하여 출력 형식을 지정합니다.1. 범용 자리 표시자:
v 值的默认格式。
%+v 添加字段名(如结构体)
%#v 相应值的Go语法表示
%T 相应值的类型的Go语法表示
%% 字面上的百分号,并非值的占位符
로그인 후 복사
2. v 值的默认格式。 %+v 添加字段名(如结构体) %#v 相应值的Go语法表示 %T 相应值的类型的Go语法表示 %% 字面上的百分号,并非值的占位符
%t true 或 false
로그인 후 복사 3. 정수 값:
%t true 或 false
%b 二进制表示
%c 相应Unicode码点所表示的字符
%d 十进制表示
%o 八进制表示
%q 单引号围绕的字符字面值,由Go语法安全地转义
%x 十六进制表示,字母形式为小写 a-f
%X 十六进制表示,字母形式为大写 A-F
%U Unicode格式:U+1234,等同于 "U+%04X"
로그인 후 복사4. 부동 소수점 수 및 복소수:
%b 二进制表示 %c 相应Unicode码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由Go语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode格式:U+1234,等同于 "U+%04X"
%b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat中的 'b' 转换格式一致。例如 -123456p-78
%e 科学计数法,例如 -1234.456e+78
%E 科学计数法,例如 -1234.456E+78
%f 有小数点而无指数,例如 123.456
%g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出
%G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出
로그인 후 복사5. 문자열 및 바이트 표현:
%b 无小数部分的,指数为二的幂的科学计数法,与 strconv.FormatFloat中的 'b' 转换格式一致。例如 -123456p-78 %e 科学计数法,例如 -1234.456e+78 %E 科学计数法,例如 -1234.456E+78 %f 有小数点而无指数,例如 123.456 %g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)输出 %G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)输出
%s 字符串或切片的无解译字节
%q 双引号围绕的字符串,由Go语法安全地转义
%x 十六进制,小写字母,每字节两个字符
%X 十六进制,大写字母,每字节两个字符
로그인 후 복사6. 에
'u here' 표시가 없습니다. 정수가 부호 없는 유형이면 부호 없는 것으로 인쇄됩니다. 마찬가지로 피연산자(int8, int64)의 크기를 지정할 필요가 없습니다. %s 字符串或切片的无解译字节 %q 双引号围绕的字符串,由Go语法安全地转义 %x 十六进制,小写字母,每字节两个字符 %X 十六进制,大写字母,每字节两个字符
7. %v의 기본 형식은 %p 十六进制表示,前缀 0x
로그인 후 복사
기본 출력 형식은 %v를 사용하여 지정할 수 있음을 알 수 있습니다. 기본값과 다른 형식으로 출력되지 않는 한 %를 사용할 수 있습니다. v 교체(권장되지 않음) %p 十六进制表示,前缀 0x
8. 복합 개체의 경우:
내부 요소는 다음 규칙을 사용하여 인쇄됩니다.bool: %t int, int8 etc.: %d uint, uint8 etc.: %d, %x if printed with %#v float32, complex64, etc: %g string: %s chan: %p pointer: %p
9 너비 및 정밀도:
너비는 % 뒤의 값입니다. , 지정하지 않으면 값의 기본값이 사용되며, 정밀도는 지정되지 않은 경우 인쇄할 값의 기본 정밀도가 사용됩니다. 예: %9.2f, 너비 9, 정밀도 2struct: {field0 field1 ...} array, slice: [elem0 elem1 ...] maps: map[key1:value1 key2:value2] pointer to above: &{}, &[], &map[]
%f: default width, default precision %9f width 9, default precision %.2f default width, precision 2 %9.2f width 9, precision 2 %9.f width 9, precision 0
func main() {
a := 123
fmt.Printf("%1.2d\n", a) //123,宽度为1小于数值本身宽度,失效,而精度为2,无法截断整数
b := 1.23
fmt.Printf("%1.1f\n", b) //1.2,精度为1,截断浮点型数据
c := "asdf"
fmt.Printf("%*.*s\n", 1, 2, c) //as,利用'*'支持宽度和精度的输入,并且字符串也可以利用精度截断
}
로그인 후 복사
Printf 클래스의 모든 함수에는 어떤 형식도 허용하지 않는 인쇄 함수가 있습니다. 이는 각 피연산자에 %v를 적용하는 것과 같습니다. 또 다른 가변 매개변수 함수인 Println은 피연산자 사이에 공백을 삽입하고 끝에 개행 문자를 추가합니다자리 표시자를 고려하지 않고 피연산자가 인터페이스 값인 경우 인터페이스 자체 대신 내부 특정 값이 사용됩니다. 아래와 같이: func main() { a := 123 fmt.Printf("%1.2d\n", a) //123,宽度为1小于数值本身宽度,失效,而精度为2,无法截断整数 b := 1.23 fmt.Printf("%1.1f\n", b) //1.2,精度为1,截断浮点型数据 c := "asdf" fmt.Printf("%*.*s\n", 1, 2, c) //as,利用'*'支持宽度和精度的输入,并且字符串也可以利用精度截断 }
+ 总打印数值的正负号;对于%q(%+q)保证只输出ASCII编码的字符。 - 左对齐 # 备用格式:为八进制添加前导 0(%#o),为十六进制添加前导 0x(%#x)或0X(%#X),为 %p(%#p)去掉前导 0x;对于 %q,若 strconv.CanBackquote 返回 true,就会打印原始(即反引号围绕的)字符串;如果是可打印字符,%U(%#U)会写出该字符的Unicode编码形式(如字符 x 会被打印成 U+0078 'x')。 ' ' (空格)为数值中省略的正负号留出空白(% d);以十六进制(% x, % X)打印字符串或切片时,在字节之间用空格隔开 0 填充前导的0而非空格;对于数字,这会将填充移到正负号之后
package main import ( "fmt" ) type Sample struct { a int str string } func main() { var i interface{} = Sample{1, "a"} fmt.Printf("%v\n", i) //{1 a} }
func main() { fmt.Printf("%[2]d, %[1]d\n", 11, 22) //22, 11,先输出第二个值,再输出第一个值 }
출력 예func main() {
var i int = 1
fmt.Printf("%s\n", i) //%!s(int=1)
}
로그인 후 복사[관련 권장 사항:
func main() { var i int = 1 fmt.Printf("%s\n", i) //%!s(int=1) }
위 내용은 Go 언어의 출력 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Go Language의 부동 소수점 번호 작동에 사용되는 라이브러리는 정확도를 보장하는 방법을 소개합니다.

Go Crawler Colly의 대기열 스레딩 문제는 Colly Crawler 라이브러리를 GO 언어로 사용하는 문제를 탐구합니다. � ...

GO 언어에서 구조를 정의하는 두 가지 방법 : VAR과 유형 키워드의 차이. 구조를 정의 할 때 Go Language는 종종 두 가지 다른 글쓰기 방법을 본다 : 첫째 ...

Go Language의 문자열 인쇄의 차이 : println 및 String () 함수 사용 효과의 차이가 진행 중입니다 ...

GO의 어떤 라이브러리가 대기업이나 잘 알려진 오픈 소스 프로젝트에서 개발 했습니까? GO에 프로그래밍 할 때 개발자는 종종 몇 가지 일반적인 요구를 만납니다.

Go Language에서 메시지 대기열을 구현하기 위해 Redisstream을 사용하는 문제는 Go Language와 Redis를 사용하는 것입니다 ...

골란드의 사용자 정의 구조 레이블이 표시되지 않으면 어떻게해야합니까? Go Language 개발을 위해 Goland를 사용할 때 많은 개발자가 사용자 정의 구조 태그를 만날 것입니다 ...

VSCODE 사용자의 GOLANG 제네릭 기능 유형 제약 조건을 자동으로 삭제하면 VSCODE를 사용하여 Golang 코드를 작성할 때 이상한 문제가 발생할 수 있습니다. 언제...
