Известно, что языки программирования бывают статические и динамические. В статических языках типы всех значений известны в момент компиляции. В результате компилятор может проверить, правильно ли используется значение, применима ли к нему та или иная операция. Узнавать об ошибке в момент компиляции приятнее, чем во время исполнения — меньше ошибок выйдет при тестировании и дойдет до пользователя. За это ошибок и ценят статические языки.
Но почему дело ограничивается только типами данных? Попробуем немного по-фантазировать, что еще мог бы делать компилятор.
Решил поинтересоваться у Яндекса как определить браузер посетителя (на PHP).
Вторая ссылка привела на «замечательный» пример скрипта.
<?
//Для начала назначаем переменные
.if(eregi("opera",$HTTP_USER_AGENT))// Если у тебя Опера, то переменная $browse = OP
$browser = "OP";
else if(eregi("msie",$HTTP_USER_AGENT))// Если у тебя MSIE, то переменная $browse = IE
$browser = "IE";
else if(eregi("Mozilla.[4.]",$HTTP_USER_AGENT))
$browser = "NS";
else if(eregi("Mozilla.[5|6]",$HTTP_USER_AGENT))
$browser = "MO";
else // если что-то другое , то OT
$browser = "OT";
?>
//Все . Закончили с определением. Мы уже знаем какой у тебя браузер. Теперь выведеминфу о тебе.
<? if ($browser=="IE") {
echo "Internet Explorer";//Если ie, то пишет Internet Explorer
}
if ($browser=="OP") {
echo "Opera!
Обнови свой броузер и перестань морочить голову дизайнерам всякой межбраузерностью!";
}
if ($browser=="NS") {
echo "Netscape!
Обнови свой броузер и перестань морочить голову дизайнерам всякой межбраузерностью!
";
}
if ($browser=="MO") {
echo "Mozilla! Обнови свой броузер и перестань морочить голову дизайнерам всякой межбраузерностью!";
}
if ($browser=="OT") {
echo "А что у вас за Browser?";//если OT то пишет ...
}
?>
Обнови свой броузер!
источник
Попался мне код, писанный одним индусом, а если точнее то мне было лень проверять в C# является ли строка числом с помощью метода TryParse и я решил посмотреть есть ли более «короткий» способ. вот на что я наткнулся
for (int i=0; i<this.textbox1.text.length; i++)
{
if (char.IsDigit(this.textbox1.text[i])==false)
// give any error
}
* This source code was highlighted with Source Code Highlighter.
Я конечно понимаю, что это «оптимизированный» метод на основе Replace, но всё равно забавно :).
if VerifyStructure(avDetails) == TRUE
bStructure = TRUE
else
bStructure = FALSE
if VerifyStatement(avDetails) == TRUE
bStatement = TRUE
else
bStatement = FALSE
Обе функции по спецификации возвращают строго boolean