You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PlantUML中展示值数组而非关联数组?

如何在PlantUML中用无索引的列表形式展示监听事件?

我有一个状态图,其中会进入ListenToEvents状态,监听的事件会根据之前的状态动态变化。目前我在PlantUML里用map来展示这些事件:

单个事件的写法:

map Events {
  1 => EVENT_PROFILE_DOWNLOAD
}

多个事件的写法:

map Events {
  1 => EVENT_PROFILE_DOWNLOAD
  2 => EVENT_TIMER_EXPIRATION
}

但我不想用这种带索引的关联数组形式,希望能写成类似普通数组的样子,不需要手动指定索引:

array Events {
  EVENT_PROFILE_DOWNLOAD
  EVENT_TIMER_EXPIRATION
}

我试过用object替代array,但出现了语法错误。


可行解决方案

PlantUML本身没有原生的array语法,但可以通过以下几种方式实现类似无索引列表的效果:

1. 状态内添加备注列表

直接在ListenToEvents状态旁或内部用备注展示事件列表:

state ListenToEvents {
  note right: 监听事件:
  note right: - EVENT_PROFILE_DOWNLOAD
  note right: - EVENT_TIMER_EXPIRATION
}

2. 用类模拟无索引集合

利用类来展示事件集合,不需要额外索引:

class Events {
  EVENT_PROFILE_DOWNLOAD
  EVENT_TIMER_EXPIRATION
}

// 若需关联状态图,可添加连接
state ListenToEvents
Events --> ListenToEvents : 监听

3. 全局图例展示

如果事件是全局通用的,用图例统一展示:

legend
监听事件:
- EVENT_PROFILE_DOWNLOAD
- EVENT_TIMER_EXPIRATION
endlegend

state ListenToEvents

4. 简化map的索引显示

如果坚持用map,可以隐藏索引或使用空索引:

map Events {
  "" => EVENT_PROFILE_DOWNLOAD
  "" => EVENT_TIMER_EXPIRATION
}

部分PlantUML版本支持省略索引直接写值:

map Events {
  => EVENT_PROFILE_DOWNLOAD
  => EVENT_TIMER_EXPIRATION
}

内容的提问来源于stack exchange,提问作者Typhaon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 18:10:19