develooper Front page | perl.perl6.users | Postings from December 2022

Re: When to use .new?

Thread Previous | Thread Next
Ralph Mellor
December 5, 2022 19:20
Re: When to use .new?
Message ID:
I forgot to mention one other shortcut that is always available
if you do have to use `.new` (which is the case for most types).

You can write:
my $foo = 42;
The `42` on the RHS of the `=` is the shortest way to create
an integer value corresponding to `42`.

But you could also write:
my $foo = 42;
It's odd, but you could that. You could also write:

my Int $foo .= new: 42;
Note the `.=` instead of `=` and the `new` instead of ``.

That is, if you constrain a variable's type, and want to initialize
that variable to a value of exactly that type, you don't have to
repeat the type name on the RHS of the `=` if you write it as above.

For types that have literal forms it's not helpful. And for short type
names it's helpful, but only a little. But let's say you really wanted
to write out the full `NativeCall::Types::Pointer` and you wanted a
variable constrained to that type and initialized to have a value of
that type. Now it's a big deal:

my NativeCall::Types::Pointer $foo .= new: 42;


Thread Previous | Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About