这篇开始记录整数的格式化处理,首先学习下c格式 可以看到,参数是Unicode编码或字符。我们知道,字符实质是一个整数,如果用Unicode编码,一般指的是UTF16。fmt。Printf(c,中)或者fmt。Printf(c,0x4E2D) 两种样式是一样的,本质都是一个数。那么当用c是如何处理这个整数呢?c c实际调用的是fmtC方法,主要有三个部分: 1hr如果整数太大,超出Unicode的编码范围,会将r置为。有关Unicode的编码这里暂时不探讨了,需要知道的是Unicode有一个最大范围为FFFF,大约111,4111个码点,因此传过去的整数不能大于此值 2hr使用utf8。EncodeRune函数将此Unicode转换为utf8,概括说就是UTF16UTF8,这是c的主要作用。 3hr将转换结果写入buf,下面看pad的操作。pad(b〔〕byte) 1hr如果宽度不存在或为0,直接写入 2hr宽度Rune得到需要填充的空白符(数)。从这可以看出,c强调字符(个数) 3hr根据左或右对齐,分别执行填充和写入操作。其中执行了一个writePadding方法,这个在下篇中进行记录,它还有一些问题。c处理整数总结fmt。Printf(05。2c,0x4E2D)输出:0000中或者fmt。Printf(5。0c,0x4E2D)输出:中c处理整数,本质是将UTF16UTF8c只关注宽度,精度被忽略。(根据源码无精度的任何处理)对齐可以填充0或者默认的空格不支持、等其它含义的各种标记