# Data Types

# Strings

Pretty much everything that you can work with in a Yate action is a string. Strings can contain any Unicode character and are not in themselves tied to any one particular character encoding. When audio files are read and written, Yate will use the appropriate character encoding.

A string can be empty but it always exists. In Yate if you test a field for existence, you're trying to determine if it's empty. (Completely empty. A string with a space in it is not empty!).

Track Variables, Named Variables, System Variables and Action Runtime Settings all store strings.

# Numbers

While many Yate statements will extract numbers (particularly integers) from a string, there is no specific Number data type.

# Lists

List manipulation is one of the most powerful abilities in Yate's action suite. A list by itself is a nebulous concept as any field or named variable can be considered a list. In most list action statements, the delimiter or delimiters used in the list can be set. Others, produce or require a fixed set of delimiters. Most list statements provide default list delimiters which vary depending on the function.

Lists are simply a string divided into multiple strings separated by one or more delimiters (which are themselves strings).

# Key - Value Lists

Yate also provides the ability to main a list in which you read/write individual elements based on a key. Think of these as Mac property lists or Windows ini files. A Yate key-value list is simply a list with two columns where the List Key statement interprets the first column as a key and the second column as a value. Using this statement you can get or set the value of any key. You can also remove an item based on the key.

# Containers

Containers are an internal representation of JSON (JavaScript Object Notation). This is the only binary represented data type in Yate. The simple JSON types of String, Number, Boolean and Null are supported. The complex JSON types of Array and Object are also fully supported. A Yate container is always an Array or Object.

Variables

Lists

Containers