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

如何在Scriban中实现字符串与十六进制值的格式化

解决Scriban模板格式化字符串与十六进制数值的问题

正确的模板写法

你可以用两种方式实现需求,其中第二种更贴近你之前Jinja2的使用习惯:

方法1:使用string.format函数

uint16_t {{ string.format "%25s" device.name }} = {{ string.format "0x%08X" device.address }};

方法2:使用%插值操作符

uint16_t {{ "%25s" % device.name }} = {{ "0x%08X" % device.address }};

错误原因说明

你之前的写法误用了Scriban的函数:

  • object.format并非Scriban标准函数,不存在该用法;
  • math.format是用于数学表达式输出格式化的,不适合处理十六进制数值的格式化需求。

效果验证

当device.name为"RNG"、device.address为0x50060800时,上述模板会输出你期望的结果:

uint16_t RNG = 0x50060800;

内容的提问来源于stack exchange,提问作者El-Zinkii

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 10:10:34