Value Types
Vala supports a set of the simple types as most other languages do.
- Byte, 
char,uchar; their names are char for historical reasons. - Character, 
unichar; a 32-bit Unicode character - Integer, 
int,uint - Long Integer, 
long,ulong - Short Integer, 
short,ushort - Guaranteed-size Integer, 
int8,int16,int32,int64as well as their unsigned siblingsuint8,uint16,uint32,uint64. The numbers indicate the lengths in bits. - Float number, 
float,double - Boolean, 
bool; possible values aretrueandfalse - Compound, 
struct - Enumeration, 
enum; represented by integer values, not as classes like Java's enums 
Here are some examples.
/* atomic types */
unichar c = 'u';
float percentile = 0.75f;
const double MU_BOHR = 927.400915E-26;
bool the_box_has_crashed = false;
/* defining a struct */
struct Vector {
    public double x;
    public double y;
    public double z;
}
/* defining an enum */
enum WindowType {
    TOPLEVEL,
    POPUP
}
Most of these types may have different sizes on different platforms, except for the guaranteed-size integer types. The sizeof operator returns the size that a variable of a given type occupies in bytes: 
ulong nbytes = sizeof(int32);    // nbytes will be 4 (= 32 bits)
You can determine the minimum and maximum values of a numerical type with .MIN and .MAX, e.g. int.MIN and int.MAX.