G
N
I
D
A
O
L

常用ASCII 图 ---- readme&markdown常用的符号图

  • readme&markdown常用符号图

常用组合

基础框架:
┌──────┐
│      │
└──────┘

指针:
●───>
●──>

连接:
─────
│
├──
└──

箭头:
───>
──→
⟶
➜

对勾/叉:
✅
❌

箭头

// 实线
┌──────────┐          ┌──────────┐
│  数据A   │──────────>│  数据B   │
└──────────┘          └──────────┘

┌──────────┐
│  源数据  │
│  ptr: ●──┼─────────> 堆内存
│  len: 5  │
└──────────┘

// 虚线
┌──────────┐          ┌──────────┐
│  数据A   │ ─ ─ ─ ─ >│  数据B   │
└──────────┘          └──────────┘

┌──────────┐
│  引用    │
│  ptr: ●  │ ┈┈┈┈┈┈┈> 指向的数据
└──────────┘

// 分支
┌──────────┐          ┌──────────┐
│  r1: &x  │─────┐    │          │
└──────────┘     │    │  x: 42   │
                 ├───>│          │
┌──────────┐     │    └──────────┘
│  r2: &x  │─────┤
└──────────┘     │
                 │
┌──────────┐     │
│  r3: &x  │─────┘
└──────────┘
                 ┌──────────┐
            ┌───>│  堆数据1  │
            │    └──────────┘
┌──────────┐│
│  String  ││    ┌──────────┐
│  ptr: ●──┼┴───>│  堆数据2  │
│  cap: 10 │     └──────────┘
│  len: 5  │
└──────────┘

unicode字符表

盒绘字符(Box Drawing)

单线:
─  水平线
│  垂直线
┌  左上角
┐  右上角
└  左下角
┘  右下角
├  左接口
┤  右接口
┬  上接口
┴  下接口
┼  十字交叉

双线:
═  水平双线
║  垂直双线
╔  左上角
╗  右上角
╚  左下角
╝  右下角
╠  左接口
╣  右接口
╦  上接口
╩  下接口
╬  十字交叉

混合:
╒  ═ + │
╓  ─ + ║
╞  ═ + │
╟  ─ + ║

箭头符号

→  右箭头
←  左箭头
↑  上箭头
↓  下箭头
↔  双向箭头
⇒  粗右箭头
⇐  粗左箭头
⇑  粗上箭头
⇓  粗下箭头
⟶  长右箭头
⟵  长左箭头
➜  实心右箭头
➤  三角右箭头

特殊符号

●  实心圆(指针)
○  空心圆
◆  实心菱形
◇  空心菱形
■  实心方块
□  空心方块
▲  实心三角
△  空心三角
✓  对勾
✗  叉号
…  省略号
┈  虚线
┉  粗虚线

模板

1.rust结构体字段布局

struct Ticket {
  ┌─────────────────┐
  │ title: String   │ → [ptr][cap][len] → 堆: "标题"
  ├─────────────────┤
  │ desc: String    │ → [ptr][cap][len] → 堆: "描述"
  ├─────────────────┤
  │ status: String  │ → [ptr][cap][len] → 堆: "To-Do"
  └─────────────────┘
     72 bytes (栈)
}

2.借用检查器视角

Timeline(时间线):
─────────────────────────────────────>

let x = 42;
│
├─ let r1 = &x;     ┌─────────────┐
│                   │ r1 有效期    │
│  ├─ let r2 = &x;  ├─────────────┤
│  │                │ r2 有效期    │
│  │ println!(r2); ─┘             │
│  │                              │
│  println!(r1); ──────────────────┘
│
└─ let m = &mut x;  ┌─────────────┐
                    │ m 有效期     │
   m.add(10); ──────┘

3.内存对齐

Memory Layout:
0x0000  ┌────────┬────────┬────────┬────────┐
        │  byte  │  byte  │  byte  │  byte  │
        ├────────┴────────┴────────┴────────┤
0x0004  │          u32 (4 bytes)            │
        ├───────────────────────────────────┤
0x0008  │          u64 (8 bytes)            │
        │                                   │
        └───────────────────────────────────┘

4.函数调用栈

Call Stack:
┌─────────────────────┐
│  main()             │
│  ┌───────────────┐  │
│  │ x = 42        │  │
│  └───────────────┘  │
├─────────────────────┤
│  foo(x)             │
│  ┌───────────────┐  │
│  │ param = 42    │  │
│  │ result = ...  │  │
│  └───────────────┘  │
├─────────────────────┤
│  bar()              │
│  ┌───────────────┐  │
│  │ ...           │  │
│  └───────────────┘  │
└─────────────────────┘

5.树形结构

           root
            │
      ┌─────┼─────┐
      │     │     │
     ●──>  ●──>  ●──>
    node1 node2 node3
      │           │
   ┌──┴──┐     ┌──┴──┐
   │     │     │     │
  ●──>  ●──>  ●──>  ●──>
 leaf  leaf  leaf  leaf

6.生命周期

'a: ────────────────────────────────
              ▲
              │ outlives
              │
'b: ──────────┴─────────

7.闭包捕获

┌──────────────────┐
│  外部作用域       │
│  ┌────────────┐  │
│  │  x = 10    │  │
│  └────────────┘  │
│         │        │
│         ▼        │
│  ┌────────────┐  │
│  │  闭包      │  │
│  │  |_| x+1   │◄─┤ 捕获 x
│  └────────────┘  │
└──────────────────┘

posted @ 2026-03-05 17:40  Bingo39  阅读(208)  评论(0)    收藏  举报