如何在Cheetah3中动态构造占位符变量名,实现bash间接变量取值效果
Cheetah3 实现 bash 风格间接变量取值的方法
在bash中通过${!variablename}实现的间接变量取值逻辑,在Cheetah3中可以直接用内置的$getVar()方法实现,无需额外扩展。getVar接收变量名字符串作为入参,会自动查找当前模板上下文中对应名称的变量并返回值,完全匹配需求场景。
对应需求示例的Cheetah3实现代码
## 定义基础变量 #set $ONE = "1" #set $TWO = "2" #set $CHOICE = "ONE" ## 输出ONE变量的值,等价于bash的 ${!CHOICE} $getVar($CHOICE) ## 切换CHOICE取值 #set $CHOICE = "TWO" $getVar($CHOICE)
上述模板渲染后输出结果和bash示例完全一致:
1 2
可选进阶用法
如果需要兼容变量不存在的场景,可以给getVar传第二个参数作为默认值,避免模板渲染报错:
## 当$CHOICE对应的变量不存在时,返回默认值N/A $getVar($CHOICE, "N/A")
内容的提问来源于stack exchange,提问作者Joel Bion
相关产品推荐
相关产品推荐

