预订演示
前页 后页

变量

模板变量提供了一种在模板中存储和检索数据的便捷方式。本节说明如何定义和引用变量。

变量定义

变量定义采用基本形式:

$<名称> = <值>

其中 <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> 可以是先前定义的变量。

可以使用变量引用:

  • 作为宏的一部分,例如函数宏的参数
  • 作为变量定义中的一个术语
  • 作为将变量值直接替换到输出中
在定义之前引用变量是合法的。在这种情况下,假定变量包含一个空string值:“”

变量引用 -示例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的值)