Вадим Румянцев @vadimr
Разработчик аппаратно-программных комплексов
Information
- Rating
- 1,792-nd
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity
Specialization
Project Manager, Software Architect
Lead
Разработчик аппаратно-программных комплексов
Я ничего не путаю, я пишу о типичном случае применения.
Единственный корректный способ отличить правильный e-mail от неправильного — это соединиться со своим smtp сервером и предложить ему соответствующее RCPT TO. Понятно, что это возможно только динамически. А все статические проверки e-mail адреса — это зло. Большинство авторов почтовых программ, к счастью, это хорошо понимают.
По поводу url — слово «привет», разумеется, не является url-ем, но, тем не менее, может иногда использоваться в качестве такового, в чём легко убедиться, набрав его в браузере.
Затем сделал то же с адресом просто vadim (имя сервера по умолчанию).
Date: Sun, 4 Sep 2016 14:41:56 +0300
To: vadim
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
X-Mailer: Apple Mail (2.3124)
На самом деле, даже цикл for… to MAXINT в большинстве реализаций никогда не завершится, даже без всяких поддиапазонов (в Си это тривиально следует из записи условия цикла, а во многих других языках является неприятным открытием для многих программистов). Это просто иллюстрирует фундаментальное противоречие, заключающееся в том, что алгоритмически целесообразный диапазон значений переменной может отличаться от домена прикладных значений, для обработки которых предназначена эта переменная.
На самом деле, даже с банальными числовыми поддиапазонами существует ряд практических проблем. Например, предположим, мы объявили переменную поддиапазонного типа
var i: 1..10;
а потом хотим сделать по ней цикл:
for i := 1 to 10 do something;
При обычной реализации этого цикла, переменная i получит на его выходе значение 11, выходящее за пределы её подтипа.
В своё время было много полемики по этому поводу в рамках академического флейма C vs Pascal.
Что касается конкретно практики isValidEmail, то я бы относился к ней с осторожностью, и использовал, скорее, как предупреждение, чем как безусловный императив, однозначно подразумеваемый статической системой типизации.
От академических теорий до практики весьма далековато.
virsh и virtmanager, упомянутые в статье, не являются ни частью, ни специфической принадлежностью именно KVM.
А что касается Xen, то это, для начала, архитектура гипервизора, а затем реализующий её код.
The typedef name int N _t designates a signed integer type with width N, no padding bits, and a two's-complement representation.
Разумеется, это вопрос POSIX, а не стандарта языка, как и вообще все вопросы внутренней реализации libc.