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
对大多数的数值类型而言,宽度为输出的最小字符数,如果必要的话会为已格式化的形式填充空格。
而以字符串类型,精度为输出的最大字符数,如果必要的话会直接截断。
相关推荐
用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语言,亦称Golang,是由Google开发并开源的一种静态类型、编译型的语言。它旨在提高编程效率,尤其关注解决多核处理器上的性能问题。Go语言的设计哲学强调简洁性和效率,非常适合用于构建大型软件系统和网络服务。...
### Go语言学习之认识Golang #### 一、引言 Go语言,也称为Golang,是由Google设计的一种静态类型的编程语言。它以其简洁的语法、高效的并发模型以及丰富的标准库而闻名。本文将从Go语言的基础入手,通过具体代码...
Go语言,又称Golang,是由Google公司设计的一种静态类型的、垃圾回收的、编译型的、并发型且具有垃圾回收功能的编程语言。它旨在提高开发效率,兼顾运行速度,使得开发者能够在保持高效性能的同时,享受到简洁的语法...
Go语言是一种开源的编程语言,由Google开发,以其简洁、高效和并发支持而著称。以下是一些Go语言的基础教程和常用指令,以及带有注释的项目代码示例。 Go语言基础教程 安装Go:可以从Go语言官方网站下载安装包进行...
Go语言,也称为Golang,是一种高效、可靠的编程语言,特别适合于多处理器系统的应用程序开发。Go编译出的程序在速度上可与C或C++相媲美,同时还提供了更高的安全性以及对并行进程的良好支持。 ### 安装Go语言SDK 1...
Go语言SQLite数据库是一个轻量级、自包含的数据库引擎,常用于嵌入式应用程序,无需外部服务器进程。在Go语言中使用SQLite,开发者可以利用其高效性和灵活性来存储和管理数据。本文将深入探讨如何在Go中使用SQLite,...
2. **反射(Reflection)**:反射是Go语言中一项强大的功能,允许在运行时检查变量类型并调用其方法。 - 示例: ```go func describe(v interface{}) { t := reflect.TypeOf(v) fmt.Printf("Type: %s\n", t) }...
Go 语言笔试题 Go 语言基础笔试题涵盖了 Go 语言的基础知识点,包括变量声明、数据类型、控制结构、函数、结构体、指针、map 等。下面是对每道题的详细解释和解答: 1. 直接编译某个 Go 文件的命令是什么? ...
Go语言,也称为Golang,是由Google开发的一种静态类型的、编译式的、并发型且具有垃圾回收功能的编程语言。其设计目标是提高系统软件的开发效率和性能。Go语言的标准库提供了大量的预定义函数和类型,使得开发者可以...
在Go语言中实现MD2加密,可以利用内置的`crypto/md2`包,它提供了MD2的哈希函数。开发者可以使用`md2.Sum()`方法对数据进行加密,得到16字节的摘要,通常会用十六进制表示。以下是一个简单的示例: ```go package ...
Go语言中的`os`包提供了读取命令行参数的方法,这对于实现命令行工具非常有用。 ```go package main import ( "fmt" "os" ) func main() { for _, arg := range os.Args { fmt.Println(arg) } } ``` ##### ...
Go,又称Golang,是由Google开发并开源的一种静态类型的编译语言。它的设计目标是为了提高编程效率,解决多核处理器上的性能问题。Go 语言具有以下显著特点: 1. **简洁性**:Go 语言的语法简单明了,易于学习。 2. ...
`fmt`包是Go语言中用于格式化输入输出的基本包。它提供了多种函数和接口,用于处理字符串和数据的格式化。 - **Print函数** - `Print`函数将参数以默认格式输出到标准输出,参数之间用空格分隔,末尾添加换行符。 -...
goPy 是一个新的开源项目,实现了用 Go 语言来编写 CPython 扩展。 示例代码: package simple import ( "fmt" "gopy" ) func example(args *py.Tuple) (py.Object, error) { fmt.Printf("simple.example: %...
在这段代码中,我们首先导入了`fmt`包,这是Go语言标准库中的一个包,提供了格式化输入/输出的功能。然后,在`main`函数中调用了`Println()`函数,将字符串`"Hello, World!"`输出到屏幕上。`Println()`函数会自动在...
`os`包是Go语言标准库的重要组成部分,它提供了一系列用于与操作系统交互的函数和方法,包括文件操作、目录管理、环境变量访问、进程管理等功能。通过这些API,开发者可以轻松地执行复杂的系统级任务,无需关心底层...
一个简单易用的基于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客户端和服务端,可以利用开源库如`emqtt`、`paho.mqtt.golang`或`go-mqtt`等。这些库提供了方便的API来实现MQTT协议的各种功能,包括连接、断开、发布、订阅和接收消息。 1. MQTT协议基础: - ...