New implementation

Be concise.

Be useful.

All contributions dictatorially edited by webmasters to match personal tastes.

Please do not paste any copyright violating resource.

Please try to avoid dependencies to third-party libraries and frameworks.

Other implementations
  type t
    character(len=:), allocatable :: c
    integer, dimension(:), allocatable :: n
  end type t
  type(t), allocatable :: v

  allocate (v)
  v%s = 'Hello, world!'
  v%n = [1,4,9,16,25]

  deallocate (v)
type
  TDynIntArray = array of integer;
  TT = record
    s: string;
    n: TDynIntArray;
  end;
  PTT = ^TT;

var
  v: PTT;
begin
  v := New(PTT);
  v^.s := 'Hello world';
  v^.n := TDynIntArray.Create(1,4,9,16,25);
  Dispose(v);
end.
use Moops;
class T {
    has 's', is => 'ro', isa => Str;
    has 'n', is => 'ro', isa => ArrayRef[Int];
}

{
    my $v = T->new(s => 'Hello, world!', n => [1,4,9,16,25]);
    # deallocation happens at closing brace, see explanation
}
class T:
    def __init__(self, s, n):
        self.s = s
        self.n = n
        return

v = T('hello world', [1, 4,  9, 16, 25])
del v