<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">2015-10-13 16:23 GMT+03:00 Ivan Petrov <span dir="ltr"><<a href="mailto:i.petro.77.00@gmail.com" target="_blank">i.petro.77.00@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class="">> Что подтверждает что отсутствие типов заставляет проводить валидацию данных.<br>
> И я просил пример на perl 5 где видно чем плохи типы данных.<br>
<br>
</span>Объясните мне например как присутствие типа данных Вам поможет скажем<br>
контроллировать "только положительные числа", "только положительные,<br>
рациональные" или же например проверить валидная ли широта и долгота в<br>
градусах передана с устройства Вашего клиента.<br></blockquote><div><br></div><div><span class="" style="color:rgb(167,29,93);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.8px;white-space:pre">subset</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.8px;white-space:pre"> Int::Odd </span><span class="" style="color:rgb(167,29,93);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.8px;white-space:pre">of</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.8px;white-space:pre"> Int </span><span class="" style="color:rgb(167,29,93);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.8px;white-space:pre">where</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.8px;white-space:pre"> { </span><span class="" style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.8px;white-space:pre">$^num</span><span style="color:rgb(51,51,51);font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace;font-size:12px;line-height:16.8px;white-space:pre"> % 2 == 1 };</span><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div class=""><div class="h5"><br>
<br>
<br>
> 13 октября 2015 г., 16:12 пользователь Ivan Petrov<br>
> <<a href="mailto:i.petro.77.00@gmail.com">i.petro.77.00@gmail.com</a>> написал:<br>
>>> Никто её не путает. сказали же - отсутствие типизации заставляет<br>
>>> выполнять валидацию.<br>
>><br>
>> непонятно кого заставляет и зачем заставляет.<br>
>><br>
>> вы опять путаете валидацию данных с типами данных.<br>
>> надо бороться с кашей в голове.<br>
>><br>
>><br>
>>> Хватит ходить вокруг да около - покажи чем плохо типизация на реальном<br>
>>> примере из Perl 5, а то только пока FUD<br>
>><br>
>> вот Mouse<br>
>><br>
>> has counter => is => 'ro', isa => 'Int';<br>
>><br>
>> это *валидация данных*, а не тип данных.<br>
>><br>
>> создаем объект<br>
>><br>
>>  my $o1 = new MyObject counter => 123;<br>
>>  my $o2 = new MyObject counter => '123';<br>
>><br>
>> Результат одинаковый. Типов данных нет.<br>
>><br>
>> Первое 123 пришло например из кода программы (скажем из конфига)<br>
>> второе 123 пришло например из парсера XML в виде<br>
$dom->>> findnodes('/Bla')->shift->getAttribute('counter')<br>
>><br>
>><br>
>> Для валидации данных не нужны типы.<br>
>><br>
>>> 13 октября 2015 г., 16:03 пользователь Ivan Petrov<br>
>>> <<a href="mailto:i.petro.77.00@gmail.com">i.petro.77.00@gmail.com</a>> написал:<br>
>>>><br>
>>>>> Очень нужная и полезная вещь. Отсутствие типизации как и нормальных<br>
>>>>> сигнатур заставляет выполнять валидацию данных практически в каждой<br>
>>>>> функции Perl 5 и это порой сильно раздражает.<br>
>>>><br>
>>>> крайне удручает то, что большинство путает валидацию данных с<br>
>>>> типами данных.<br>
>>>><br>
>>>><br>
>>>> --<br>
>>>> Moscow.pm mailing list<br>
>>>> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
>>> --<br>
>>> Moscow.pm mailing list<br>
>>> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
>> --<br>
>> Moscow.pm mailing list<br>
>> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
> --<br>
> Moscow.pm mailing list<br>
> <a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Best regards, Ruslan.</div>
</div></div>