前页 | 后页 |
变量
模板变量提供了一种在模板中存储和检索数据的便捷方式。本节说明如何定义和引用变量。
变量定义
变量定义采用基本形式:
$<名称> = <值>
其中 <name> 可以是任何字母数字序列,而 <value> 派生自宏或其他变量。
A简单的示例定义是:
$foo = %className%
可以使用以下值定义变量:
- 替换,函数或列表宏
- 字符串文字,用双引号括起来
- 变量引用
定义规则
这些规则适用于变量定义:
- 变量在定义它们的模板内具有全局范围,其他模板无法访问
- 每个变量必须在行首定义,没有任何中间空格
- 变量通过在名称前加上 $ 来表示,如 $foo
- 变量不必在定义之前声明
- 必须使用赋值运算符 (=) 或加法赋值运算符 (+=) 定义变量
- 可以使用加法运算符 (+) 将多个术语组合在一个定义中
例子
使用替换宏:
$foo = %opTag:"bar"%
使用文字string :
$foo = "栏"
使用另一个变量:
$foo = $bar
使用列表宏:
$ops = %list="操作" @separator="\n\n" @indent="\t"%
使用加法赋值运算符 (+=):
$body += %list="操作" @separator="\n\n" @indent="\t"%
该定义相当于:
$body = $body + %list="操作" @separator="\n\n" @indent="\t"%
使用多个术语:
$templateArgs = %list="ClassParameter" @separator=", "%
$template="模板<" + $templateArgs + ">"
变量引用
可以使用以下形式的引用来检索变量值:
$<名称>
其中 <name> 可以是先前定义的变量。
可以使用变量引用:
- 作为宏的一部分,例如函数宏的参数
- 作为变量定义中的一个术语
- 作为将变量值直接替换到输出中
变量引用 -示例1
使用变量作为宏的一部分。这是默认 C++ ClassNotes模板的摘录。
$wrapLen = %genOptWrapComment%
$style = %genOptCPPCommentStyle%(定义变量以存储样式和换行长度选项)
%if $style == "XML.NET"% (参考$style 作为条件的一部分)
%XML_COMMENT($wrapLen)%
%别的%
%CSTYLE_COMMENT($wrapLen)% (参考$wrapLen 作为函数宏的参数)
%万一%
变量引用 -示例
使用变量引用作为变量定义的一部分。
$foo = "foo" (定义我们的变量)
$bar = "栏"
$foobar = $foo + $bar ($foobar现在包含值 foobar)
变量引用 -示例
将变量值代入输出。
$bases=%classInherits% (将 ClassInherits模板的结果存储在 $bases 中)
类%className%$bases(现在在类名后面输出$bases的值)