출력 방법: 1. 콘솔에 출력할 수 있는 Print() 함수(형식은 허용되지 않음), 구문은 "fmt.Print(str)"입니다. 2. 콘솔에 출력할 수 있는 Println() 함수; 콘솔 및 랩, 구문 "fmt.Println(tmp)" 3. Printf() 함수는 형식화된 문자열만 인쇄할 수 있습니다. 4. Sprintf() 함수는 문자열을 형식화하고 반환할 수 있습니다. 포맷되어 "io.Writers"로 출력됩니다.
이 튜토리얼의 운영 환경: Windows 7 시스템, GO 버전 1.18, Dell G3 컴퓨터.
Print, Println, Printf<code> , <code>
、<strong>Sprintf</strong>
、Fprintf
Sprintf ,
Fprintf
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”)
v 值的默认格式。 %+v 添加字段名(如结构体) %#v 相应值的Go语法表示 %T 相应值的类型的Go语法表示 %% 字面上的百分号,并非值的占位符
%t true 或 false3. 정수 값:
%b 二进制表示 %c 相应Unicode码点所表示的字符 %d 十进制表示 %o 八进制表示 %q 单引号围绕的字符字面值,由Go语法安全地转义 %x 十六进制表示,字母形式为小写 a-f %X 十六进制表示,字母形式为大写 A-F %U Unicode格式:U+1234,等同于 "U+%04X"4. 부동 소수점 수 및 복소수:
%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. 문자열 및 바이트 표현:
%s 字符串或切片的无解译字节 %q 双引号围绕的字符串,由Go语法安全地转义 %x 十六进制,小写字母,每字节两个字符 %X 十六进制,大写字母,每字节两个字符6. 에
%p 十六进制表示,前缀 0x
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
struct: {field0 field1 ...} array, slice: [elem0 elem1 ...] maps: map[key1:value1 key2:value2] pointer to above: &{}, &[], &map[]숫자 값의 경우 너비는 숫자 값이 차지하는 영역의 최소 너비이고 정밀도는 소수점 이하 자릿수입니다. 그러나 %g/%G의 경우 정밀도는 총 자릿수입니다. 예를 들어, 123.45의 경우 %6.2f 형식은 123.45를 인쇄하고 %.4g는 123.5를 인쇄합니다. %e 및 %f의 기본 정밀도는 6이지만 %g의 경우 기본 정밀도는 값을 결정하는 데 필요한 최소 자릿수입니다. 대부분의 값에서 너비는 출력할 최소 문자 수이며 형식이 지정된 양식에 필요한 경우 공백이 채워집니다. 문자열의 경우 정밀도는 출력되는 최대 문자 수이며 필요한 경우 직접 잘립니다. Width는 "필요한 최소 너비"를 나타냅니다. 결과 문자열의 너비가 지정된 너비를 초과하면 지정된 너비가 유효하지 않습니다. 너비를 `*'로 지정하면 매개변수에서 너비 값을 가져옵니다. "." 바로 뒤의 숫자 문자열은 정밀도를 나타냅니다("."만 있는 경우 ".0"입니다). 정수 표시기(`d', `i', `b', `o', `x', `X', `u')가 나타나면 정밀도는 숫자 부분의 길이를 나타냅니다만약 a float 점 표시(`f')의 경우 소수 부분의 자릿수를 나타냅니다. 부동 소수점 표시기(`e', `E', `g', `G')가 나타나면 유효 자릿수를 나타냅니다. 정밀도가 `*'로 설정되면 해당 숫자가 사용됩니다. 매개변수에서 정밀도 값을 추출하세요문자열 %s 또는 부동 소수점 유형 %f의 경우 정밀도로 인해 데이터 길이가 잘릴 수 있습니다. 아래 그림과 같습니다.
%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 010. 기타 플래그:
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而非空格;对于数字,这会将填充移到正负号之后11. 매개변수 자리 표시자 표시: Go는 아래와 같이 출력 형식에서 출력 순서를 지정하여 매개변수 자리 표시자를 표시하도록 지원합니다.
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} }12 형식 오류: 인수가 잘못된 경우. 자리 표시자에 제공되면(예: %d에 문자열 제공) 형식 오류가 발생합니다. 모든 오류는 "%!"로 시작하고 때로는 단일 문자(자리 표시자)가 뒤따르고 괄호로 묶인 설명으로 끝납니다.
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) }
위 내용은 Go 언어의 출력 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!