Logo

Programming-Idioms

This language bar is your friend. Select your favorite languages!

Idiom #245 Print value of custom type

Print the value of object x having custom type T, for log or debug.

console.log(x);
#include <iostream>
std::cout << x;
print(x);
import fmt;
fmt.Println(x)
print x
writeln(x.T);
use Object::Pad;
class Point {
    has $x :param = 0;
    has $y :param = 0;
    
    use overload '""' => sub { shift->_stringify() };   

    method _stringify () { "A point at ($x, $y)"  }
}
 
my $p = Point->new(x => 5, y => 10);

print $p; # prints: A point at (5, 10)
package Point { 
    my $_data = {};
    
    sub new { 
        my $class = shift;
        $_data = { @_ };
        bless $_data, $class;
    };

    use overload '""' => sub { shift->_stringify() };

    sub _stringify {
        my $self = shift;
        return sprintf 'A point at (%d, %d)', $self->{x}, $self->{y};
    }
}
 
my $p = Point->new(x => 5, y => 10);
print $p;
print(x)
puts x
println!("{:?}", x);
Debug.Print x

New implementation...
< >
花大喵