[CS1] Template Operators
Operators are symbols that allow you to compare two values or combine two values.
Comparison Operators
Many times you whether in using a ternary condition or in conditional rendering you'll want to use a comparison operator. This page documents what is available to you in the component studio templating language. These operators will return 1 if true or 0 if false.
Operator  Description  Example 
==  Equal to. Note that = is not the same thing.  {$quantity == 5} {$color == 'blue'} 
!=  Not equal to.  {$quantity != 5} {$color != 'blue'} 
>  Greater than.  {$quantity > 2} 
<  Less than.  {$quantity < 2} 
>=  Greater than or equal to.  {$quantity >= 2} 
<=  Less than or equal to.  {$quantity <= 2} 
? :  Ternary condition. It takes 3 arguments. The first is the condition to validate, then the true value, and then the false value.  {$level > 2 ? 1 : 0} 
Arithmetic Operators
Perform a mathematical calculation upon two values.
Operator  Description  Example  Result 
+  Addition  {1 + 1}  2 
  Subtraction  {1  1}  0 
*  Multiplication  {1 * 1}  1 
/  Division  {1 / 1}  0 
%  Modulus, the remainder after division.  {1 % 1} {5 % 3} 
1 2 
min  The smaller of the two numbers.  {20 min 40}  20 
max  The larger of the two numbers.  {20 max 40}  40 
Logical Operators
Perform logic operations on values to determine a true or false value.
Operator  Description  Example  Result 
!  Not. Invalidates the value.  {!1} {! 3 < 1} 
0 1 
&&  And.  {0 && 0} {1 && 0} {1 && 1} { 3 > 1 && 1 > 0} 
0 0 1 1 
  Or.  {0  0} {1  0} {1  1} { 3 > 1  1 > 0} 
0 1 1 1 
//  Default. If the original is undefined, then use this.  {$something_empty // 'blue'} {$color_is_orange // 'blue'} 
blue orange 
or  Or. Same as   

not  Not. Same as !  
and  And. Same as &&  
? : 
Ternary. It takes 3 arguments. The first is the condition to validate, then the true value, and then the false value.  {$position == 'king' ? 'purple' : 'white'}  purple 
String Operators
Use the to manipulate strings.
Operator  Description  Example  Result 
~  Concatenate. Combines two strings together.  {'R' ~ 'G' ~ 'B'} {$first_name ~ ' ' ~ $last_name} 
RGB Andy Dufresne 
x  Repeat multiple of times.  {'A' x 3} #{$hex_byte x 3} 
AAA #FEFEFE 
Nil
When you are trying to check for a field that is undefined or empty, then you'll want to use the special keyword 'nil'. For example, if you have a field that might be empty and you don't want to render it when empty, you could add this to conditional rendering to do this:
{$this_might_be_empty == nil}
Hex Numbers
You can represent hexadecimal numbers in the template language by prefixing them with 0x (zero x). This will allow you to do math on a hex numbers for calculating colors. Example: 0xfe