GO(2):占位符

本文所涉及代码路径: https://gitee.com/rockywish/go/blob/master/01day_datatype/placeholder.go

一、普通占位符

/*
	占位符
*/
func main() {
	//声明变量my_car
	my_car := Cars{Brand: "BWM"}
	/*
		普通占位符
	*/

	//%v 相应值的默认格式
	// \n为换行符
	//输出 my_car的值为 {BWM}
	fmt.Printf("my_car的值为 %v \n", my_car)

	//%+v 打印结构体 会添加字段名
	//{Brand:BWM}
	fmt.Printf("%+v \n", my_car)

	//定义变量rockywish_age
	var rockywish_age = 18

	//%T 相应值的类型
	//输出 rockywish_age的类型为 int
	fmt.Printf("rockywish_age的类型为 %T\n", rockywish_age)

	//字面上的百分号,并非值的占位符
	//输出 %
	fmt.Printf("%% \n")
}

/*
为了更好的演示占位符,定义一个结构体,后续会专门讲解结构体
*/
type Cars struct {
	Brand string
}

二、布尔占位符

	/*
		布尔占位符
	*/
	// %t  true 或 false。
	//输出true、false
	fmt.Printf("%t\n", true)
	fmt.Printf("%t\n", false)
	

三、整数占位符

/*
		整数占位符
	*/
	var rockywish_id = 100

	//%b 以二进制表示
	//输出 1100100
	fmt.Printf("%b \n", rockywish_id)

	//%d 十进制表示
	//输出 100
	fmt.Printf("%d \n", rockywish_id)

	//%o 八进制表示
	//输出 144
	fmt.Printf("%o \n", rockywish_id)

	var rockywish_num = 15
	//%x 十六进制表示 字母形式为小写 a-f
	//输出 f
	fmt.Printf("%x \n", rockywish_num)

	//%X 十六进制表示 字母形式为大写 A-F
	//输出 F
	fmt.Printf("%X \n", rockywish_num)

	//Unicode码点所表示的字符
	//输出 %!c(string=中国)
	fmt.Printf("%c \n", "\u4e2d\u56fd")

	//单引号围绕的字符,由Go语法安全地转义
	//输出 '中'
	fmt.Printf("%q \n", 0x4E2D)

四、浮点数和复数

/*
		浮点数和复数的组成
	*/
	var rockywish_price = 20.9
	//科学计数法
	//2.090000e+01
	fmt.Printf("%e \n", rockywish_price)

	//科学计数法
	//2.090000E+01
	fmt.Printf("%E \n", rockywish_price)

	//有小数点而无指数
	//20.900000
	fmt.Printf("%f \n", rockywish_price)

	//%g 根据情况选择 %e 或 %f 以产生更紧凑的(无末尾的0)
	//输出 20.9
	fmt.Printf("%g \n", rockywish_price)

	//%G 根据情况选择 %E 或 %f 以产生更紧凑的(无末尾的0)
	// 输出(20.9+5i)
	fmt.Printf("%G \n", 20.9+5i)

五、字符串和切片

	/*
		字符串和切片
	*/

	//%s 输出字符串
	//输出 rockywish
	var rockywish_name = "rockywish"
	fmt.Printf("%s \n", rockywish_name)

	//%q    双引号围绕的字符串,由Go语法安全地转义
	//输出 "rockywish"
	fmt.Printf("%q \n", rockywish_name)

	//%x    十六进制,小写字母,每字节两个字符
	//输出 726f636b7977697368
	fmt.Printf("%x \n", rockywish_name)

	//%X    十六进制,大写字母,每字节两个字符
	//输出 726F636B7977697368
	fmt.Printf("%X \n", rockywish_name)
	

六、指针

	/*
		指针
	*/
	//%p    十六进制表示,前缀 0x
	//输出 0xc000010220
	fmt.Printf("%p \n", &rockywish_name)
	

七、符号与精度

	/*
		符号与精度
		无符号:golang没有 ‘%u’ 占位符,若整数为无符号类型,默认就会被打印成无符号的
		 宽度与精度:控制格式以Unicode码点为单位。宽度为该数值占用区域的最小宽度;精度为小数点之后的位数。操作数的类型为int时,宽度与精度都可用字符 ‘*’ 表示。
		 对于 %g/%G 而言,精度为所有数字的总数,%e 和 %f 的默认精度为6,对大多数的数值类型而言,宽度为输出的最小字符数,如果必要的话会为已格式化的形式填充空格,而以字符串类型,精度为输出的最大字符数,如果必要的话会直接截断
	*/
	var rockywish_score = 123.626789
	//123.3
	fmt.Printf("%.4g \n", rockywish_score)
	//123.63
	fmt.Printf("%6.2f \n", rockywish_score)
	

八、其他

/*
		其他
	*/

	//+    总打印数值的正负号,对于%q(%+q)保证只输出ASCII编码的字符
	//输出 +10
	fmt.Printf("%+d \n", 0xA)

	//输出 "\u4e2d\u56fd"
	var china = "中国"
	fmt.Printf("%+q \n", china)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值