Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Связывание переменных

Связывание (binding), или создание ссылок, осуществляют операторы «:=» и «::=». Они создают синоним переменной, указанной справа от оператора. Любое обращение к синониму эквивалентно обращению к оригинальной переменной:

# binding.p6

my $a = 123;

my $b := $a;

$b = 456;

say $a; # 456

Хотя в последней строке происходит обращение к переменной $a, на экране появится значение 456, которое присвоено через ссылку $b.

Различие между формами с одним и двумя двоеточиями заключается в моменте, когда выполняется связывание. В первом случае оно происходит на этапе выполнения программы, во втором – на этапе компиляции.

Это также сказывается и на размере промежуточного кода.

Например, если приведенную программу оттранслировать в промежуточный PIR-файл (указав опцию -CPIR), получится код длиной 91 049 байт, а та же программа с оператором «::=» окажется чуть короче (90 897 байт). Не стоит пугаться таких размеров промежуточного кода, потому что в нем собрано много определений операторов, которые данной программой не используются.

Конкатенация строк

«Складывание» строк теперь выполняет не оператор «точка», а тильда:

# concatenation.p6

my $before = 'This is';

my $after = 'Perl 6.';

say $before ~ ' ' ~ $after;

Одинарные и двойные кавычки в строках имеют тот же смысл, что и в Perl 5.

Операторы «//» и «//=»

Бинарный оператор «//» (не путайте с началом однострочного комментария) принимает два операнда и возвращает первый из них, если он определен, и второй, если не определен первый.

# double-slash.p6

my $a = "a";

my $b = "b";

my $c;

say $b // $a; # b

say $c // $a; # a

При первом вызове метод say() получает значение переменной $b (поскольку она определена), а второй $a (потому что значение у переменной $c отсутствует).

Оператор «//=» выполняет то же действие, но над единственной переменной: вызов «$a //= $b» равнозначен «$a = $a // $b».

Интервальные условия

В Perl 6 операторы сравнения допускается объединять в цепочку, что позволяет создавать компактные записи, например, для проверки попадания значения переменной в заданный интервал:

# interval.p6

my $x = 5;

say "yes" if 0 < $x < 10;

if 0 < $x < 10 {say "yes"}


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100