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

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


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以十六进制显示指针
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值