go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符串格式化输出

Posted Locutus

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符串格式化输出相关的知识,希望对你有一定的参考价值。

格式化输出在代码逻辑中非常常用。


1. 格式化函数

使用格式化函数,要注意写法:

fmt.Sprintf(格式化样式,参数列表...)

fmt.Printf(格式化样式,参数列表...)

fmt.Println(参数列表...)
  • 格式化样式:字符串形式,格式化动词以%开头

  • 参数列表:以逗号分隔多个参数,参数必须与格式化样式中格式化动词一一对应,否则运行时会报错


2. Go的格式化输出延续C语言风格

package string_test

import (
	"fmt"
	"testing"
)

var progress int = 2
var target int = 8

func TestStringfmtout(t *testing.T) {
	// 把两个参数格式化输出
	title := fmt.Sprintf("已采集%d个,还需要%d个才能完成任务", progress, target)

	fmt.Println(title)

	pi := 3.14159

	// 正常输出原值
	variant := fmt.Sprintf("%v %v %v", "月球基地", pi, true)

	fmt.Println(variant)
}

/*
已采集2个,还需要8个才能完成任务
月球基地 3.14159 true
*/

func TestStringfmtoutput(t *testing.T) {
	// 声明匿名结构体,并赋初值(结构体实例化)
	profile := &struct {
		Name string
		HP   int
	}{
		Name: "rat",
		HP:   150,
	}

	fmt.Printf("使用'%%+v', %+v\\n", profile)

	fmt.Printf("使用'%%#v', %#v\\n", profile)

	fmt.Printf("使用'%%T', %T\\n", profile)
}

/*
使用'%+v', &{Name:rat HP:150}
使用'%#v', &struct { Name string; HP int }{Name:"rat", HP:150}
使用'%T', *struct { Name string; HP int }
*/

注:

海象运算符:=不能用于声明全局变量!只能在函数内部使用,只用来声明临时(局部)变量。

初始化全局变量需使用var关键字,正确操作:var a int = 8

声明结构体时,在{}内的成员变量字段与类型后面都不用加逗号,;在结构体初始化实例赋值时,每个成员变量字段与类型后面都要加逗号,。


3. 常用的格式化动词

动词功能
%v正常输出原值
%+v在%v基础上,对结构体字段名和值进行展示
%#v输出Go语言语法格式的值,在%v基础上,对结构体的属性和结构体实例的字段名和值,进行展示
%T输出参数的类型
%%输出第二个%和%之后的本体。如%%+v,输出%+v
%b以二进制显示整型
%o以八进制显示整型
%d以十进制显示整型
%x以十六进制显示整型
%X以十六进制显示整型、大写字母显示
%U以Unicode字符显示
%f以浮点数显示
%p以十六进制显示指针

以上是关于go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符串格式化输出的主要内容,如果未能解决你的问题,请参考以下文章

go语言学习笔记 — 基础 — 基本数据类型 — 字符串:字符

go语言学习笔记 — 基础 — 基本数据类型 — 原生数据类型:布尔型数字类型(整型与浮点型)字符串类型

go语言学习笔记 — 基础 — 基本数据类型 — 字符串(11):go中的字符串

go语言学习笔记 — 基础 — 基本数据类型 — 类型类别:值类型和引用类型

go语言学习笔记 — 基础 — 基本数据类型 — 字符串:遍历字符串

go语言学习笔记 — 基础 — 基本数据类型 — 字符串:修改字符串