Moduł Perl6::Subs
Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowaSpis treści
Obsługa modułu Perl6::Subs
use Perl6::Subs;
sub foo ($x) # Nowy styl parametrów
{ bar($x) }
sub get (Array $x) # Walidacja typów
{ pop @$x }
sub get_or_die ($x of Array where { @$_ }) # Zmiana typów
{ pop @$x }
sub show (Str $s, IO ?$io) # Parametry opcjonalne
{ print { $io || *STDOUT } $s }
sub limit (Int $i, Int +$hi, Int +$low) # Parametry nazwane
{ ... }
method foo # Obiekt: '$self'
{ $self->bar }
method foo (Foo $self: Bar $x) # Parametr 'isa' nazwa klasy
{ $self->use_bar($x) }
Co to jest?
Ten moduł pozwala definiować procedury używając składni Perla 6
Dla wszystkich nie mogących się doczekać Perla 6!
Szczegóły
Moduł wspiera wszystkie pięć kategorii parametrów procedur Perla 6. Oto one:
- Obiekt wywołujący metodę, 'wywoływacz' czyli $self. By zadeklarować wywoływacza użyj dwukropka zamiast przecinka a gdy nie ma być żadnych innych parametrów zakończ deklarację dwukropkiem.
- Wymagany parametr $foo
- Opcjonalny parametr ?$foo
- Wymagany nazwany parametr +$foo is required
- Opcjonalny nazwany parametr +$foo
- Końcowy parametr np.: *@rest lub *%rest. Ten typ parametru musi być na końcu listy, ponieważ pobiera wszystkie pozostałe wartości.
Typy i walidacja
Najpierw typy podstawowe w Perlu 6:
Teraz typy opakowane, obiektowe:
Moduł obsługuje także typy nieobsługiwane w Perlu 6 ale użyteczne w Perlu 5:
Składnia deklaracji procedur
Moduł filtruje procedury zadeklarowane poprzez styl Perla 6 lub poprzez słówko kluczowe method:
sub foo is method {...}
sub foo returns(Any) is method {...}
sub foo ($self:) : method {...}
method foo {...}
method foo ($self:) {...}
Parametry możemy deklarować na dwa sposoby: Type $var lub $var of Type. Obie składnie są równoznaczne.
Dodatkowe informacje
Cała dokumentacja znajduje się na http://search.cpan.org/~chips/Perl6-Subs-0.05/lib/Perl6/Subs.pm
Autor opracowania
P.B.