golang示例:for九九乘法表

Go 复制代码
package main

import "fmt"

const maxNum = 9

func main() {
	for i := 1; i <= maxNum; i++ {
		for j := 1; j <= i; j++ {
			fmt.Printf("%d×%d=%-2d  ", j, i, i*j)
		}
		fmt.Println()
	}
}

其中%-2d 是 Go 语言(以及 C 语言家族)中 fmt.Printf 的格式化动词,用于控制整数输出的格式。

拆解说明:

bash 复制代码
%  -  2  d
│  │  │  │
│  │  │  └── 动词:d 表示十进制整数(decimal)
│  │  └───── 宽度:2 表示最小输出宽度为 2 个字符
│  └──────── 标志:- 表示左对齐(默认是右对齐)
└─────────── 格式化占位符起始符

具体效果对比:

Go 复制代码
package main
 
import "fmt"

func main() {
    //1. %2d(默认右对齐,宽度 2)
    fmt.Printf("%2d", 1)   // 输出: " 1" (前面有一个空格)
    fmt.Printf("%2d", 12)  // 输出: "12" (宽度正好)
    fmt.Printf("%2d", 123) // 输出: "123" (宽度不够时不截断)

    //2. %-2d(左对齐,宽度 2)
    fmt.Printf("%-2d", 1)   // 输出: "1 " (后面有一个空格)
    fmt.Printf("%-2d", 12)  // 输出: "12" (宽度正好)
    fmt.Printf("%-2d", 123) // 输出: "123" (宽度不够时不截断)
}
相关推荐
小宋102111 小时前
MCP 工具也有供应链风险:注册中心、签名校验、版本锁定与白名单
开发语言·网络·人工智能·php
多多爱学习11 小时前
括号有几层?得看还有多少个左括号没闭合
c语言·c++·算法·面试
凉茶钱11 小时前
【C++】入门基础语法
开发语言·c++
个 人 练 习 生11 小时前
C++中的内存管理
开发语言·c++·经验分享·学习
续写烂尾12 小时前
MK SD NAND(贴片式TF卡)替代Nor Flash:1Gb容量与256Mb Nor
算法·microsoft
jingli912 小时前
本地向量库索引把 C 盘塞爆 48.6G:一次 LanceDB 膨胀排查与根治实录
c语言·开发语言
言乐612 小时前
Python排名统计折线图
开发语言·python·django·virtualenv·pygame
u01110267512 小时前
图片预览越来越占内存聊聊 URL.createObjectURL 的释放时机
图像处理·深度学习·算法·ai作画
Zane199412 小时前
同样是遍历图,为什么BFS能保证找到最短路径,DFS却不行
算法
无限码力12 小时前
2026华为OD机试真题 新系统 9月27日【坚果巧克力】
算法·华为od·华为od机考·华为od机试真题·华为od机试·华为od机考真题题解·华为社招笔试真题