golang 格式化输入输出操作

格式化字符串由占位符和普通字符组合而成。

占位符由'%'打头,动词结尾。

占位符由五类元素组成: 标志位(flag),宽度,精度,参数索引,以及动词。

除了最后的动词之外,其他元素均可省略。

看下面的常用类型的例子描述:

缺省格式和类型

Value: []int64{0, 1}

格式化后的效果 动词 描述
[0 1] %v 缺省格式
[]int64{0, 1} %#v go语法打印
[]int64 %T 类型打印

整型(缩进, 进制类型, 正负符号)

Value: 15

格式化后的效果 动词 描述
15 %d 十进制
+15 %+d 必须显示正负符号
␣␣15 %4d Pad空格(宽度为4,右对齐)
15␣␣ %-4d Pad空格 (宽度为4,左对齐)
0015 %04d Pad空格(宽度为4)
1111 %b 二进制
17 %o 八进制
f %x 16进制,小写
F %X 16进制,大写
0xf %#x 16进制,带进制标志0x

字符(有引号, Unicode)

Value: 65 (Unicode letter A)

格式化后的效果 动词 描述
A %c 字符
'A' %q 有引号的字符
U+0041 %U Unicode
U+0041 'A' %#U Unicode 有引号

布尔(true/false)

使用 %t 来格式化一个布尔类型为true或false

指针(hex)

使用 %p 来格式化一个指针为16进制的显示方式

浮点(缩进, 精度, 科学计数)

Value: 123.456

格式化后的效果 动词 描述
1.234560e+02 %e 科学计数
123.456000 %f 十进制小数
123.46 %.2f 缺省宽度,精度为2
␣␣123.46 %8.2f 宽度为8,精度为2
123.456 %g 根据情况选择%e或%f,末尾没有0

字符串or 字节slice (引号, 缩进, 16进制)

Value: "café"

格式化后的效果 动词 描述
café %s 字符串原样输出
␣␣café %6s 宽度为6,右对齐
café␣␣ %-6s 宽度为6,左对齐
"café" %q 带引号的字符串
636166c3a9 %x 16进制的形式打印每个字节
63 61 66 c3 a9 % x 16进制的形式打印每个字节,字节间带空格

补充:golang中格式化符号说明

%v 值的默认格式表示

%+v 类似%v,但输出结构体时会添加字段名

%#v 值的Go语法表示

%T 值的类型的Go语法表示

%% 百分号

布尔值:

%t 单词true或false

整数:

%b 表示为二进制

%c 该值对应的unicode码值

%d 表示为十进制

%o 表示为八进制

%q 该值对应的单引号括起来的go语法字符字面值,必要时会采用安全的转义表示

%x 表示为十六进制,使用a-f

%X 表示为十六进制,使用A-F

%U 表示为Unicode格式:U+1234,等价于"U+%04X"

浮点数与复数的两个组分:

%b 无小数部分、二进制指数的科学计数法,如-123456p-78;参见strconv.FormatFloat

%e 科学计数法,如-1234.456e+78

%E 科学计数法,如-1234.456E+78

%f 有小数部分但无指数部分,如123.456

%F 等价于%f

%g 根据实际情况采用%e或%f格式(以获得更简洁、准确的输出)

%G 根据实际情况采用%E或%F格式(以获得更简洁、准确的输出)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。

(0)

相关推荐

  • golang网络通信超时设置方式

    网络通信中,为了防止长时间无响应的情况,经常会用到网络连接超时.读写超时的设置. 本文结合例子简介golang的连接超时和读写超时设置. 1.超时设置 1.1 连接超时 func DialTimeout(network, address string, timeout time.Duration) (Conn, error) 第三个参数timeout可以用来设置连接超时设置. 如果超过timeout的指定的时间,连接没有完成,会返回超时错误. 1.2 读写超时 在Conn定义中,包括读写的超时时

  • golang 限制同一时间的并发量操作

    go的并发量是很厉害的,goroutine创建的代价极小,其中一个重要的原因是因为go采用了分段栈技术,每一个goroutine只占极小的空间.与此同时,goroutine是语言层面的,减少了内核态到用户态的切换开销,并且goroutine摒弃了一些golang用不到的一些os thread的系统调用,创建代价小. 我们可以一瞬间创建很多个goroutine,这是相当容易的. 乍一看,这与题目完全不符,前面说了那么多,难道不是鼓励我们多创建goroutine吗?不不不,goroutine确实很好

  • 基于pip install django失败时的解决方法

    使用pip安装Django时报错,先是: C:\Users\admin>pip install django Collecting django Retrying (Retry(total=4, connect=None, read=None, redirect=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.python.org', port=443): Read ti

  • go build和go install的区别介绍

    go build: go build 用于编译包生成可执行文件,必须有main包才可以 go install: go install 的作用有两个:主要用来生成库和工具,(如果有main包)编译后生成的可执行工具文件放到 bin 目录.$GOPATH/bin,编译后的库文件放到 pkg 目录下($GOPATH/pkg) 补充:go build 命令 简介 1.用于编译源码文件或代码包 -编译非命令源码文件不会产生任何结果文件 -编译命令源码文件会在该命令的执行目录中生成一个可执行文件 2.执行该

  • go install/build生成的文件命名和路径操作

    1. 写在前面 本文主要讨论go install/build命令生成的文件命令和生成路径问题.将从两种情况讨论: 文件夹下只有一个"命令源码文件" 文件夹下既有命令源码文件还有其他源码文件 以下实验主要在windows环境下完成呢,所以生成的可执行文件以.exe后缀结尾 2. 文件夹下只有一个"命令源码文件" 假设一个简单的命令源码文件所在的工程组织如下所示: |__ src     |__ jeekTimeProject         |__ test     

  • golang 格式化输入输出操作

    格式化字符串由占位符和普通字符组合而成. 占位符由'%'打头,动词结尾. 占位符由五类元素组成: 标志位(flag),宽度,精度,参数索引,以及动词. 除了最后的动词之外,其他元素均可省略. 看下面的常用类型的例子描述: 缺省格式和类型 Value: []int64{0, 1} 格式化后的效果 动词 描述 [0 1] %v 缺省格式 []int64{0, 1} %#v go语法打印 []int64 %T 类型打印 整型(缩进, 进制类型, 正负符号) Value: 15 格式化后的效果 动词 描

  • golang中日期操作之日期格式化及日期转换

    golang中并没有像java一样提供类似yyyy-MM-dd HH:mm:ss格式的操作,而是将其定义为golang的诞生时间: 2006-01-02 15:04:05 -0700 MST 注意这在golang的日期格式化里不是一个具体日期,而是格式,这样如果我们需要格式化日期,可以如下操作 timeNow := time.Now() fmt.Println("yyyy-MM-dd HH:mm:ss" ,timeNow.Format("2006-01-02 15:04:05

  • golang中json操作的完全指南

    目录 前言 1. 结构体与JSON互转 2. map与JSON互转 3. 结构体的变量不加tag标签能否正常转成json数据 4. JSON操作的一些小技巧 (1)忽略掉 struct 指定字段 (2)添加额外的字段 (3)合并两个 struct (4)字符串传递给 int类型 (5)一个 json 分成两个struct 补充:GoLang json格式化输出 总结 前言 JSON是一种轻量级的数据交换格式.易于阅读和编写. golang 提供了 encoding/json 包来操作JSON数据

  • Golang slice切片操作之切片的追加、删除、插入等

    本文介绍了Golang slice切片操作之切片的追加.删除.插入等,分享给大家,具体如下: 一.一般操作 1,声明变量,go自动初始化为nil,长度:0,地址:0,nil func main(){ var ss []string; fmt.Printf("length:%v \taddr:%p \tisnil:%v",len(ss),ss, ss==nil) } --- Running... length:0 addr:0x0 isnil:true Success: process

  • PHP常用函数之格式化时间操作示例

    本文实例讲述了PHP常用函数之格式化时间操作.分享给大家供大家参考,具体如下: /** * 格式化时间 * @param $time 时间戳 * @return bool|string */ function formatTimeToNow($time){ //获取现在的时间戳 $nowtime = time(); if($time>$nowtime){ return ''; }else{ $tc = $nowtime-$time; if( $tc >= 864000 ){ $str = da

  • AngularJS日期格式化常见操作实例分析

    本文实例讲述了AngularJS日期格式化常见操作.分享给大家供大家参考,具体如下: <!DOCTYPE html> <html ng-app="myApp"> <head lang="en"> <meta charset="UTF-8"> <title>www.jb51.net AngularJS日期格式化</title> <script src="http

  • Golang文件读写操作详情

    目录 一.概念 二.读取文件操作 2.1 打开和关闭文件 defer 语句 2.2 file.Read() 读取文件 Read 方法定义 ReadAt方法定义 一次性读取 循环读取 2.3 bufio 读取文件 2.4 ioutil 读取文件 效率比较 三.写入文件操作 3.1 os.OpenFile()函数 3.2 Write和WriteString 方式写入 3.3 bufio.NewWriter 3.4 ioutil.WriteFile 四.复制文件 4.1 通过ioutil进行复制 4.

  • Golang连接并操作PostgreSQL数据库基本操作

    目录 前言: 连接数据库 sql.DB 增删改查 插入数据 更新数据 查询数据 删除数据 总结 前言: 本篇文章对如何使用golang连接并操作postgre数据库进行了简要说明.文中使用到的主要工具:DBeaver21.VSCode,Golang1.17. 以用户,文章,评论三个表作为例子,下面是数据库建表sql: CREATE TABLE public.user_info ( u_id serial4 NOT NULL, user_name varchar NULL, create_time

  • golang利用unsafe操作未导出变量-Pointer使用详解

    前言 unsafe.Pointer其实就是类似C的void *,在golang中是用于各种指针相互转换的桥梁.uintptr是golang的内置类型,是能存储指针的整型,uintptr的底层类型是int,它和unsafe.Pointer可相互转换.uintptr和unsafe.Pointer的区别就是:unsafe.Pointer只是单纯的通用指针类型,用于转换不同类型指针,它不可以参与指针运算:而uintptr是用于指针运算的,GC 不把 uintptr 当指针,也就是说 uintptr 无法

  • java格式化数字操作 NumberFormat及DecimalFormat

    目录 前言 正文 JavaAPI官方描述 NumberFormat DecimalFormat NumberFormat 获取NumberFormat实例 常用方法 使用示例 DecimalFormat 获取DecimalFormat实例 设置Pattern 子类特有的方法 使用示例 通用格式 获取百分比格式 货币格式 整数格式 前言 以前用到要对数字格式的地方,都是直接到网上搜一下.拿过来能用就行.因为平时用的不多.但是最近的项目对这个用的多了.网上拿来的不够用了.自己看了java源码把这方面

随机推荐