Go 字符串格式化的实例代码详解

Go对字符串格式化提供了良好的支持。下面我们看些常用的字符串格式化的例子。

package main
import "fmt"
import "os"
type point struct {
  x, y int
}
func main() {
  // Go提供了几种打印格式,用来格式化一般的Go值,例如
  // 下面的%v打印了一个point结构体的对象的值
  p := point{1, 2}
  fmt.Printf("%v\n", p)
  // 如果所格式化的值是一个结构体对象,那么`%+v`的格式化输出
  // 将包括结构体的成员名称和值
  fmt.Printf("%+v\n", p)
  // `%#v`格式化输出将输出一个值的Go语法表示方式。
  fmt.Printf("%#v\n", p)
  // 使用`%T`来输出一个值的数据类型
  fmt.Printf("%T\n", p)
  // 格式化布尔型变量
  fmt.Printf("%t\n", true)
  // 有很多的方式可以格式化整型,使用`%d`是一种
  // 标准的以10进制来输出整型的方式
  fmt.Printf("%d\n", 123)
  // 这种方式输出整型的二进制表示方式
  fmt.Printf("%b\n", 14)
  // 这里打印出该整型数值所对应的字符
  fmt.Printf("%c\n", 33)
  // 使用`%x`输出一个值的16进制表示方式
  fmt.Printf("%x\n", 456)
  // 浮点型数值也有几种格式化方法。最基本的一种是`%f`
  fmt.Printf("%f\n", 78.9)
  // `%e`和`%E`使用科学计数法来输出整型
  fmt.Printf("%e\n", 123400000.0)
  fmt.Printf("%E\n", 123400000.0)
  // 使用`%s`输出基本的字符串
  fmt.Printf("%s\n", "\"string\"")
  // 输出像Go源码中那样带双引号的字符串,需使用`%q`
  fmt.Printf("%q\n", "\"string\"")
  // `%x`以16进制输出字符串,每个字符串的字节用两个字符输出
  fmt.Printf("%x\n", "hex this")
  // 使用`%p`输出一个指针的值
  fmt.Printf("%p\n", &p)
  // 当输出数字的时候,经常需要去控制输出的宽度和精度。
  // 可以使用一个位于%后面的数字来控制输出的宽度,默认
  // 情况下输出是右对齐的,左边加上空格
  fmt.Printf("|%6d|%6d|\n", 12, 345)
  // 你也可以指定浮点数的输出宽度,同时你还可以指定浮点数
  // 的输出精度
  fmt.Printf("|%6.2f|%6.2f|\n", 1.2, 3.45)
  // To left-justify, use the `-` flag.
  fmt.Printf("|%-6.2f|%-6.2f|\n", 1.2, 3.45)
  // 你也可以指定输出字符串的宽度来保证它们输出对齐。默认
  // 情况下,输出是右对齐的
  fmt.Printf("|%6s|%6s|\n", "foo", "b")
  // 为了使用左对齐你可以在宽度之前加上`-`号
  fmt.Printf("|%-6s|%-6s|\n", "foo", "b")
  // `Printf`函数的输出是输出到命令行`os.Stdout`的,你
  // 可以用`Sprintf`来将格式化后的字符串赋值给一个变量
  s := fmt.Sprintf("a %s", "string")
  fmt.Println(s)
  // 你也可以使用`Fprintf`来将格式化后的值输出到`io.Writers`
  fmt.Fprintf(os.Stderr, "an %s\n", "error")
}

运行结果

{1 2}
{x:1 y:2}
main.point{x:1, y:2}
main.point
true
123
1110
!
1c8
78.900000
1.234000e+08
1.234000E+08
"string"
"\"string\""
6865782074686973
0xc000092000
|    12|   345|
|  1.20|  3.45|
|1.20  |3.45  |
|   foo|     b|
|foo   |b     |
a string
an error

总结

以上所述是小编给大家介绍的Go 字符串格式化的实例代码详解,希望对大家有所帮助!

(0)

相关推荐

  • node.js利用mongoose获取mongodb数据的格式化问题详解

    说明 大家都知道在mongodb 中获取数据,不管使用回调函数还是Promise又或者generate 语法最后得到都是mongoose.Query对象,不能直接操作如同普通对象一样得到单行数据.还有就是时间格式化问题,见下面. 下面示例默认使用co 和 es6 */yield 语法,当然也可以使用async/await 1. 安装mongoose $ npm install mongoose co moment --save 说明: mongoose: mongodb 的nodejs 数据库驱

  • Google开源的Python格式化工具YAPF的安装和使用教程

    目前用于Python的格式化程序(如autopep8和pep8ify)都用于删除代码中的lint错误.这有很明显的局限性. YAPF采用了不同的方法,基于Daniel Jasper开发的"'clang-format".从本质上来说,该算法取走代码并重新排版,以符合样式指南的最佳格式,即便原始代码没有违反样式指南.这个想法也是类似于Go编程语言的gofmt工具. 其最终目标是让YAPE所产生的代码可以与程序员所写的代码一样好(前提是程序员遵循样式指南),它取代了一些维护代码的苦差. 安装

  • golang gorm中格式化时间问题详解

    前言 最近在开发项目时遇到了发现一个问题, gorm虽然可以自动帮你维护 created_at.updated_at.deleted_at这些关键时间字段.但是其原理与弊端需要了解一下. 1.使用方法 通过自定义一个localtime的结构,来控制时间的格式 package utils import ( "time" //"strconv" "fmt" "database/sql/driver" "strconv&q

  • go语言中时间戳格式化的方法

    本文实例讲述了go语言中时间戳格式化的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: var t int64 = time.Now().Unix() var s string = time.Unix(t, 0).Format("2006-01-02 15:04:05") println(s) 这方式比较特别,按照123456来记忆吧:01月02号 下午3点04分05秒 2006年 希望本文所述对大家的Go语言程序设计有所帮助.

  • Go 字符串格式化的实例代码详解

    Go对字符串格式化提供了良好的支持.下面我们看些常用的字符串格式化的例子. package main import "fmt" import "os" type point struct { x, y int } func main() { // Go提供了几种打印格式,用来格式化一般的Go值,例如 // 下面的%v打印了一个point结构体的对象的值 p := point{1, 2} fmt.Printf("%v\n", p) // 如果所格式

  • JS字符串与二进制的相互转化实例代码详解

    JS字符串与二进制的相互转化的方法,具体代码如下所示: //字符串转ascii码,用charCodeAt(); //ascii码转字符串,用fromCharCode(); var str = "A"; var code = str.charCodeAt(); var str2 = String.fromCharCode(code); 十进制转二进制 var a = "i"; console.log(a.charCodeAt()); //105 console.log

  • Python字符串格式化%s%d%f详解

    关于讨论输出格式化的问题,小编不是一时兴起,之前学习python的时候就经常遇到输出时"%d",一直没有仔细学习,今天又看到了,下面分享一个简单实例,python输出99乘法表: #!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1, 10): print for j in range(1, i+1): print "%d*%d=%d" % (i, j, i*j), 结果: 1*1=1 2*1=2 2*

  • vue中的过滤器实例代码详解

    过滤器 1.过滤器规则 Vue.js 允许你自定义过滤器,可被用于一些常见的文本格式化.过滤器可以用在两个地方: 双花括号插值{{}}和  v-bind 表达式 (后者从 2.1.0+ 开始支持).过滤器应该被添加在 JavaScript 表达式的尾部,由"管道"符号指示: <!-- 在双花括号中 --> {{ name | Upper }} <!-- 在 `v-bind` 中 --> <div v-bind:id="martin | Upper

  • 表单验证正则表达式实例代码详解

    表单验证正则表达式具体内容如下所示: 首先给大家解释一些符号相关的意义 1.  /^$/ 这个是个通用的格式. ^ 匹配输入字符串的开始位置:$匹配输入字符串的结束位置 2. 里面输入需要实现的功能. * 匹配前面的子表达式零次或多次:        + 匹配前面的子表达式一次或多次:        ?匹配前面的子表达式零次或一次:        \d  匹配一个数字字符,等价于[0-9] 下面通过一段代码给大家分析表单验证正则表达式,具体代码如下: <!DOCTYPE html> <h

  • java使用RSA与AES加密解密的实例代码详解

    首先了解下,什么是堆成加密,什么是非对称加密? 对称加密:加密与解密的密钥是相同的,加解密速度很快,比如AES 非对称加密:加密与解密的秘钥是不同的,速度较慢,比如RSA •先看代码(先会用在研究) 相关依赖: <dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcprov-jdk15on</artifactId> <version>1.58</versio

  • Vue的属性、方法、生命周期实例代码详解

    实例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible"

  • python获取时间及时间格式转换问题实例代码详解

    整理总结一下python中最常用的一些时间戳和时间格式的转换 第一部分:获取当前时间和10位13位时间戳 import datetime, time '''获取当前时间''' n = datetime.datetime.now() print(n) '''获取10位时间戳''' now = time.time() print(int(now)) '''获取13位时间戳''' now2 = round(now*1000) print(now2) 运行结果为: 2018-12-06 11:00:30

  • 使用 Opentype.js 生成字体子集的实例代码详解

    字体子集是将字体文件中部分多余的字符删除,来减小文件大小,从而在 Web 端使用或嵌入到其他应用或系统中,在网上可以找到不少这方面的工具. Opentype.js是一套可以支持浏览器环境和 Node.js 环境的开源 OpenType 字体读写库,利用这个库可以很轻松实现浏览器环境和 Node.js 环境的字体子集功能. 在浏览器环境创建字体子集工具 首先创建一个简单的 HTML界面,包括一个选取字体文件按钮,一个输入框用于输入保留的字符,和一个保存下载按钮. HTML <!DOCTYPE ht

  • Python 八个数据清洗实例代码详解

    如果你经历过数据清洗的过程,你就会明白我的意思.而这正是撰写这篇文章的目的——让读者更轻松地进行数据清洗工作. 事实上,我在不久前意识到,在进行数据清洗时,有一些数据具有相似的模式.也正是从那时起,我开始整理并编译了一些数据清洗代码,我认为这些代码也适用于其它的常见场景. 由于这些常见的场景涉及到不同类型的数据集,因此本文更加侧重于展示和解释这些代码可以用于完成哪些工作,以便读者更加方便地使用它们. 数据清洗小工具箱 在下面的代码片段中,数据清洗代码被封装在了一些函数中,代码的目的十分直观.你可

随机推荐