如何在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
相关产品推荐
相关产品推荐

