Escribe Antril, ejecútalo en tu navegador y compártelo con un enlace. Los programas se compilan a WebAssembly y se ejecutan en tu equipo, no en el servidor.
Ejecutar programas no está disponible en este momento: the WebAssembly linker (wasm-ld, part of LLVM) is not installed on this server. Aún puedes escribir, compartir y descargar código.
importSystem;
intonamespaceShapes
{
publicinterfaceIShape
{
Area() : f64;
Describe() : str => "a shape of area " + Area();
}
publicbaseclassShape : IShape
{
public:
Area() : f64;
virtualName() : str => "shape";
}
publicclassCircle : Shape
{
f64 radius;
public:
new(f64 radius) { this.radius = radius; }
overrideArea() : f64 => 3.14 * radius * radius;
overrideName() : str => "circle";
}
publicfinalclassSquare : Shape
{
f64 side;
public:
new(f64 side) { this.side = side; }
overrideArea() : f64 => side * side;
}
Main()
{
List<Shape> shapes = newList<Shape>();
shapes.Add(newCircle(1));
shapes.Add(newSquare(2));
loop (Shape s in shapes)
Console.WriteLine(s.Name() + ": " + s.Area());
IShape i = newSquare(3);
Console.WriteLine(i.Describe());
Shape first = shapes[0];
if (first isCircle c)
Console.WriteLine("a circle of area " + c.Area());
Square? square = first asSquare;
Console.WriteLine(square == null);
}
}
Salida
Pulsa Ejecutar (o Ctrl+Enter) para compilar y ejecutar el programa.
Entrada
Lo que lee Console.ReadLine(), una línea a la vez.
Ctrl+Enter ejecuta. Tab agrega sangría (Shift+Tab la quita); pulsa Esc y luego Tab para salir del editor. Un programa puede ejecutarse durante 10 segundos.