Define a primitive data type: Difference between revisions

Content added Content deleted
m (→‎{{header|Perl 6}}: missing semicolon)
m (→‎{{header|Sidef}}: fixed the code)
Line 1,413: Line 1,413:


=={{header|Sidef}}==
=={{header|Sidef}}==
<lang ruby>class MyInt(value) {
<lang ruby>class MyInt(Number value) {


def min = 1;
has min = 1;
def max = 10;
has max = 10;


method new(value is Number) {
method init {
(value > max) || (value < min) && (
(value > max) || (value < min) && (
die "Invalid value '#{value}': must be between #{min} and #{max}";
die "Invalid value '#{value}': must be between #{min} and #{max}";
Line 1,427: Line 1,427:
}
}


method new(value) {
method to_s { value.to_s }
method get_value { value.get_value }
die "Invalid value '#{value}'; expected a number";
}

method get_value {
value.get_value.get_value;
}


method AUTOLOAD(name, *args) {
method AUTOLOAD(_, name, *args) {
var result = value.(name)(args...);
var result = value.(name)(args...);


Line 1,456: Line 1,451:
say b; # => 6
say b; # => 6


say a.to_hex; # => "0x9" -- an hexadecimal string
say a.to_hex.dump; # => "9" -- an hexadecimal string


a -= 7; # a=2
a -= 7; # a=2