// ****** this, alias, alias ... this keywords ****** // Converting Celcius to Fahrenheit class CelciusToFahrenheit { float celcius; // init this(float celcius) { this.celcius = celcius; } // convert to Fahrenheit double convert() { return double(9.0/5.0 * celcius + 32.0); } // enable automatic conversion of CelciusToFahrenheit objects to double alias convert this; } // print temperature announcement for the day void announce(string day, double temp) { import std.stdio: writeln; writeln("Temperature for ", day, " is ", temp, "F."); } void main() { CelciusToFahrenheit monday = new CelciusToFahrenheit(36.0); announce("Monday", monday); // creating an alias of CelciusToFahrenheit class // similar to 'typedef' in C, 'using' in C++11 alias CtoF = CelciusToFahrenheit; // also: alias CelciusToFahrenheit CtoF; CtoF tuesday = new CtoF(24.5); announce("Tuesday", tuesday); // imitating rust's data types: alias u8 = ubyte; alias u16 = ushort; alias u32 = uint; alias f32 = float; alias f64 = double; // etc... }