Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.09.28;
Скачать: CL | DM;

Вниз

Бывает же…   Найти похожие ветки 

 
Yanis ©   (2008-08-07 19:00) [0]

Ничего себе, в какой капкан я угодил по собственной невнимательности. Долго не мог понять в чём подвох в простом коде:

function IfThen(AValue: Boolean; const ATrue: string; const AFalse: string): string;
begin
 if AValue then
   Result := ATrue
 else
   Result := AFalse;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 s: string;
begin
 s := "Test";
 ShowMessage(IfThen(Length(s) > 0, s[1], ""));

 s := "";
 ShowMessage(IfThen(Length(s) > 0, s[1], ""));
end;


Это всё пагубное влияние плюсов с их сокращёнными if-ами :o)


 
Dmitry_s   (2008-08-07 19:04) [1]

:) А чего писать то?


 
Юрий Зотов ©   (2008-08-07 19:13) [2]

Тернарный оператор на Delphi...
:о)


 
{RASkov} ©   (2008-08-07 19:19) [3]

Что-то я не понял в чем фишка :(
Вижу только реальное AV во втором шоумессэдже... s[1] - которое...


 
Dmitry S ©   (2008-08-07 19:21) [4]


> Что-то я не понял в чем фишка
s[1] - которое..

В нем и фишка :)


 
ketmar ©   (2008-08-07 19:37) [5]

>[3] {RASkov} © (2008-08-07 19:19:00)
в том и фишка. потому что при:
a = flag?*s:0; если flag ложь, то *s не вычисляется. на C.

---
Understanding is not required. Only obedience.


 
DVM ©   (2008-08-07 19:38) [6]

Нафига было городить столько кода, когда можно было получить тот же эффект двумя строками.


 
Yanis ©   (2008-08-07 19:48) [7]


> Нафига было городить столько кода, когда можно было получить
> тот же эффект двумя строками.

Согласен — заблудился в трёх соснах. Но при таких ошибках появляется жуткий интерес найти её, потому что сначала начинаешь грешить на компилятор.

Наверное, такая ошибка имеет место быть у людей, которые знакомы с приплюснутыми if-ами :o) Ну или с джававскими.


 
{RASkov} ©   (2008-08-07 19:52) [8]

> [7] Yanis ©   (07.08.08 19:48)
> сначала начинаешь грешить на компилятор.

Вот распространенная ошибка :)



Страницы: 1 вся ветка

Текущий архив: 2008.09.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.365 c
2-1218898310
Павлик
2008-08-16 18:51
2008.09.28
Поиск записей


15-1218053693
Franciscosuarez
2008-08-07 00:14
2008.09.28
Красивая задача...может и встречалась тут)))не знаю


2-1218633633
webpauk
2008-08-13 17:20
2008.09.28
Отображение компонентов на форме


1-1199271232
Nucer
2008-01-02 13:53
2008.09.28
Как правильно организовать поток


1-1198754585
Kerk
2007-12-27 14:23
2008.09.28
Не переключается раскладка клавиатуры в Excel в OLE-контейнере