zoukankan      html  css  js  c++  java
  • StringTemplate.Net 学习笔记(5):条件声明

    ST的条件声明只有一个if语句,假如attribute为bool值,则直接计算,否则它通过判断attribute是否有值来计算。

    接下来看几个例子:

    例1,计算bool值:

    	StringTemplate st = new StringTemplate(@"
    		$if(c)$
    		  条件成立
    		$else$
    		  条件不成立
    		$endif$");
    	st.SetAttribute("c", false);
    	Console.WriteLine(st.ToString());
    	输出:条件不成立

    例2,计算bool值:

    	StringTemplate st = new StringTemplate(@"
    		$if(c)$
    		  条件成立
    		$else$
    		  条件不成立
    		$endif$");
    	st.SetAttribute("c", true);
    	Console.WriteLine(st.ToString());
    	输出:条件成立

    例3,判断是否有值:

    	StringTemplate st = new StringTemplate(@"
    		$if(c)$
    		  条件成立
    		$else$
    		  条件不成立
    		$endif$");
    	Console.WriteLine(st.ToString());
    	输出:条件不成立

    例4,判断是否有值:

    	StringTemplate st = new StringTemplate(@"
    		$if(c)$
    		  条件成立
    		$else$
    		  条件不成立
    		$endif$");
    	st.SetAttribute("c", "test");
    	Console.WriteLine(st.ToString());
    	输出:条件成立

    例5,多个分支:

    	StringTemplate st = new StringTemplate(@"
    		$if(a)$
    		  条件a成立
    		$elseif(b)$
    		  条件b成立
    		$elseif(c)$
    		  条件c成立
    		$else$
    		  条件都不成立
    		$endif$");
    	st.SetAttribute("c", "00");
    	Console.WriteLine(st.ToString());
    	输出:条件c成立

    例6,多个分支设置了多个条件情况下,按照它们出现的顺序来确定条件是否成立:

    	StringTemplate st = new StringTemplate(@"
    		$if(a)$
    		  条件a成立
    		$elseif(b)$
    		  条件b成立
    		$elseif(c)$
    		  条件c成立
    		$else$
    		  条件都不成立
    		$endif$");
    	st.SetAttribute("c", true);
    	st.SetAttribute("b", true);
    	Console.WriteLine(st.ToString());
    	输出:条件b成立

    例7,对attribute取反,这是ST唯一支持的运算符:

    	StringTemplate st = new StringTemplate(@"
    		$if(!c)$
    		  条件成立
    		$else$
    		  条件不成立
    		$endif$");
    	st.SetAttribute("c", true);
    	Console.WriteLine(st.ToString());
    	输出:条件不成立

    例8,嵌套的if语句:

    	StringTemplate st = new StringTemplate(@"
    		$if(a)$
    		  条件a成立
    		  $if(b)$
    		  	条件b成立
    		  $else$
    		  	条件b不成立
    		  $endif$
    		$else$
    		  条件不成立
    		$endif$");
    	st.SetAttribute("a", true);
    	Console.WriteLine(st.ToString());
    	输出:条件a成立 条件b不成立

    支持的条件语法确实是太少了。

    本文地址:http://www.cnblogs.com/lwme/archive/2010/04/30/1725329.html

    参考:http://www.antlr.org/wiki/display/ST/Expressions#Expressions-Attributeoperators

  • 相关阅读:
    tensorflow版的bvlc模型
    caffe中关于数据进行预处理的方式
    使用caffe时遇到的问题
    关于梯度下降算法的的一些总结
    机器学习优化算法之爬山算法小结
    机器学习之最小二乘法
    机器学习之KNN算法思想及其实现
    安装Python时遇到如下问题,解决方案
    机器学习之决策树熵&信息增量求解算法实现
    朴素贝叶斯分类器(离散型)算法实现(一)
  • 原文地址:https://www.cnblogs.com/lwme/p/1725329.html
Copyright © 2011-2022 走看看