`

Go语言fmt包Printf方法

    博客分类:
  • GO
 
阅读更多

1、print和println方法

 

	/*
	  fmt包含有格式化I/O函数,类似于C语言的printf和scanf。格式字符串的规则来源于C,但更简单一些。
	*/

	//print输出给定的字符串,如果是数值或字符,则输出对应的十进制表示
	fmt.Print("a", "\n")      //输出a
	fmt.Print("a", "b", "\n") //输出ab
	fmt.Print('a', "\n")      //输出97
	fmt.Print('a', 'b', "\n") //输出97 98   字符之间会输出一个空格
	fmt.Print(12, "\n")       //输出12
	fmt.Print(12, 13, "\n")   //输出12 13   数值之间输出一个空格

	//Println 自动在结尾输出\n,两个数值之间自动加空格,每项之间自动加空格
	fmt.Println("---------------------------------")
	fmt.Println("a")          //输出a
	fmt.Println("a", "b")     //输出a b
	fmt.Println('a')          //输出97
	fmt.Println('a', 'b')     //输出97 98
	fmt.Println(12)           //输出12
	fmt.Println(12, 13)       //输出12 13
	fmt.Println("\n", 12, 13) //输出 12 13   12之前有一个空格

 

2、以下为printf方法的格式说明:

 

# 定义示例类型和变量
type Human struct {
    Name string
}

var people = Human{Name:"zhangsan"}

 

普通占位符
占位符     说明                           举例                   输出
%v      相应值的默认格式。            Printf("%v", people)   {zhangsan},
%+v     打印结构体时,会添加字段名     Printf("%+v", people)  {Name:zhangsan}
%#v     相应值的Go语法表示            Printf("#v", people)   main.Human{Name:"zhangsan"}
%T      相应值的类型的Go语法表示       Printf("%T", people)   main.Human
%%      字面上的百分号,并非值的占位符  Printf("%%")            %
布尔占位符
占位符       说明                举例                     输出
%t          true  false     Printf("%t", true)       true
整数占位符
占位符     说明                                  举例                       输出
%b      二进制表示                             Printf("%b", 5)             101
%c      相应Unicode码点所表示的字符              Printf("%c", 0x4E2D)        
%d      十进制表示                             Printf("%d", 0x12)          18
%o      八进制表示                             Printf("%d", 10)            12
%q      单引号围绕的字符字面值,由Go语法安全地转义 Printf("%q", 0x4E2D)        '中'
%x      十六进制表示,字母形式为小写 a-f         Printf("%x", 13)             d
%X      十六进制表示,字母形式为大写 A-F         Printf("%x", 13)             D
%U      Unicode格式:U+1234,等同于 "U+%04X"   Printf("%U", 0x4E2D)         U+4E2D
浮点数和复数的组成部分(实部和虚部)
占位符     说明                              举例            输出
%b      无小数部分的,指数为二的幂的科学计数法,
         strconv.FormatFloat  'b' 转换格式一致。例如 -123456p-78
%e      科学计数法,例如 -1234.456e+78        Printf("%e", 10.2)     1.020000e+01
%E      科学计数法,例如 -1234.456E+78        Printf("%e", 10.2)     1.020000E+01
%f      有小数点而无指数,例如 123.456        Printf("%f", 10.2)     10.200000
%g      根据情况选择 %e  %f 以产生更紧凑的(无末尾的0)输出 Printf("%g", 10.20)   10.2
%G      根据情况选择 %E  %f 以产生更紧凑的(无末尾的0)输出 Printf("%G", 10.20+2i) (10.2+2i)
字符串与字节切片
占位符     说明                              举例                           输出
%s      输出字符串表示(string类型或[]byte)   Printf("%s", []byte("Go语言"))  Go语言
%q      双引号围绕的字符串,由Go语法安全地转义  Printf("%q", "Go语言")         "Go语言"
%x      十六进制,小写字母,每字节两个字符      Printf("%x", "golang")         676f6c616e67
%X      十六进制,大写字母,每字节两个字符      Printf("%X", "golang")         676F6C616E67
指针
占位符         说明                      举例                             输出
%p      十六进制表示,前缀 0x          Printf("%p", &people)             0x4f57f0
其它标记
占位符      说明                             举例          输出
+      总打印数值的正负号;对于%q(%+q)保证只输出ASCII编码的字符。 
                                           Printf("%+q", "中文")  "\u4e2d\u6587"
-      在右侧而非左侧填充空格(左对齐该区域)
#      备用格式:为八进制添加前导 0(%#o)      Printf("%#U", '中')      U+4E2D
       为十六进制添加前导 0x(%#x)或 0X(%#X),为 %p(%#p)去掉前导 0x;
       如果可能的话,%q(%#q)会打印原始 (即反引号围绕的)字符串;
       如果是可打印字符,%U(%#U)会写出该字符的
       Unicode 编码形式(如字符 x 会被打印成 U+0078 'x')。
' '    (空格)为数值中省略的正负号留出空白(% d);
       以十六进制(% x, % X)打印字符串或切片时,在字节之间用空格隔开
0      填充前导的0而非空格;对于数字,这会将填充移到正负号之后

 

golang没有 '%u' 点位符,若整数为无符号类型,默认就会被打印成无符号的。

 

宽度与精度的控制格式以Unicode码点为单位。宽度为该数值占用区域的最小宽度;精度为小数点之后的位数。
操作数的类型为int时,宽度与精度都可用字符 '*' 表示。

对于 %g/%G 而言,精度为所有数字的总数,例如:123.45,%.4g 会打印123.5,(而 %6.2f 会打印123.45)。

%e 和 %f 的默认精度为6

对大多数的数值类型而言,宽度为输出的最小字符数,如果必要的话会为已格式化的形式填充空格。

而以字符串类型,精度为输出的最大字符数,如果必要的话会直接截断。

分享到:
评论

相关推荐

    go语言用printf打印 Go 结构体(struct)信息:fmt.Printf(“%+v”, 结构变量名)

    用printf打印 Go 结构体(struct)信息对应实现代码 package main import "fmt" // 用户 type User struct {  Id int  Name string  Age int } func main() {  user := User{Id:2, Name:"golang"} ...

    Go语言命令行参数处理:flag包的高效应用

    Go语言,亦称Golang,是由Google开发并开源的一种静态类型、编译型的语言。它旨在提高编程效率,尤其关注解决多核处理器上的性能问题。Go语言的设计哲学强调简洁性和效率,非常适合用于构建大型软件系统和网络服务。...

    Go语言学习之认识Golang

    ### Go语言学习之认识Golang #### 一、引言 Go语言,也称为Golang,是由Google设计的一种静态类型的编程语言。它以其简洁的语法、高效的并发模型以及丰富的标准库而闻名。本文将从Go语言的基础入手,通过具体代码...

    20小时入门学会go语言.docx

    Go语言,又称Golang,是由Google公司设计的一种静态类型的、垃圾回收的、编译型的、并发型且具有垃圾回收功能的编程语言。它旨在提高开发效率,兼顾运行速度,使得开发者能够在保持高效性能的同时,享受到简洁的语法...

    Golang语言教程,常用指令详细举例,详细介绍开发资源项目代码并带注释.txt

    Go语言是一种开源的编程语言,由Google开发,以其简洁、高效和并发支持而著称。以下是一些Go语言的基础教程和常用指令,以及带有注释的项目代码示例。 Go语言基础教程 安装Go:可以从Go语言官方网站下载安装包进行...

    用JetBrains PyCharm IDE搭建Go语言开发环境.doc

    Go语言,也称为Golang,是一种高效、可靠的编程语言,特别适合于多处理器系统的应用程序开发。Go编译出的程序在速度上可与C或C++相媲美,同时还提供了更高的安全性以及对并行进程的良好支持。 ### 安装Go语言SDK 1...

    go语言sqlit数据库

    Go语言SQLite数据库是一个轻量级、自包含的数据库引擎,常用于嵌入式应用程序,无需外部服务器进程。在Go语言中使用SQLite,开发者可以利用其高效性和灵活性来存储和管理数据。本文将深入探讨如何在Go中使用SQLite,...

    go语言入门教程.doc

    2. **反射(Reflection)**:反射是Go语言中一项强大的功能,允许在运行时检查变量类型并调用其方法。 - 示例: ```go func describe(v interface{}) { t := reflect.TypeOf(v) fmt.Printf("Type: %s\n", t) }...

    Go语言笔试题

    Go 语言笔试题 Go 语言基础笔试题涵盖了 Go 语言的基础知识点,包括变量声明、数据类型、控制结构、函数、结构体、指针、map 等。下面是对每道题的详细解释和解答: 1. 直接编译某个 Go 文件的命令是什么? ...

    go语言自带标准库函数解析示例

    Go语言,也称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。其设计目标是提高系统软件的开发效率和性能。Go语言的标准库提供了大量的预定义函数和类型,使得开发者可以...

    Go语言实现md2亿次加密(已打包成windows可执行文件)

    在Go语言中实现MD2加密,可以利用内置的`crypto/md2`包,它提供了MD2的哈希函数。开发者可以使用`md2.Sum()`方法对数据进行加密,得到16字节的摘要,通常会用十六进制表示。以下是一个简单的示例: ```go package ...

    go语言中文PDF文档

    Go语言中的`os`包提供了读取命令行参数的方法,这对于实现命令行工具非常有用。 ```go package main import ( "fmt" "os" ) func main() { for _, arg := range os.Args { fmt.Println(arg) } } ``` ##### ...

    Go语言加密解密:crypto包的神秘面纱

    Go,又称Golang,是由Google开发并开源的一种静态类型的编译语言。它的设计目标是为了提高编程效率,解决多核处理器上的性能问题。Go 语言具有以下显著特点: 1. **简洁性**:Go 语言的语法简单明了,易于学习。 2. ...

    Go:Go语言标准库深度解析

    `fmt`包是Go语言中用于格式化输入输出的基本包。它提供了多种函数和接口,用于处理字符串和数据的格式化。 - **Print函数** - `Print`函数将参数以默认格式输出到标准输出,参数之间用空格分隔,末尾添加换行符。 -...

    Go语言编写CPython扩展goPy.zip

    goPy 是一个新的开源项目,实现了用 Go 语言来编写 CPython 扩展。 示例代码: package simple import ( "fmt" "gopy" ) func example(args *py.Tuple) (py.Object, error) { fmt.Printf("simple.example: %...

    Go语言输出语句详解.docx

    在这段代码中,我们首先导入了`fmt`包,这是Go语言标准库中的一个包,提供了格式化输入/输出的功能。然后,在`main`函数中调用了`Println()`函数,将字符串`"Hello, World!"`输出到屏幕上。`Println()`函数会自动在...

    Go语言操作系统操作:os包的深度应用

    `os`包是Go语言标准库的重要组成部分,它提供了一系列用于与操作系统交互的函数和方法,包括文件操作、目录管理、环境变量访问、进程管理等功能。通过这些API,开发者可以轻松地执行复杂的系统级任务,无需关心底层...

    一个简单易用的基于Go语言的位图库 , 一个基于Go语言实现的简单易用的位图库.zip

    一个简单易用的基于Go语言的位图库 / 一个基于Go语言实现的简单易用的位图库位图一个基于Go语言的简单易用的位图库。用法m1 := Bitmap{}m1.Add(1)m1.Add(10)m1.Add(999)m2 := Bitmap{}m2.Add(1)m2.Add(10)m2.Add(998...

    Go 语言开发mqtt

    在Go语言中开发MQTT客户端和服务端,可以利用开源库如`emqtt`、`paho.mqtt.golang`或`go-mqtt`等。这些库提供了方便的API来实现MQTT协议的各种功能,包括连接、断开、发布、订阅和接收消息。 1. MQTT协议基础: - ...

Global site tag (gtag.js) - Google Analytics