Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.019 c
15-1217913443
palva
2008-08-05 09:17
2008.09.28
Ega23 наверно в курсе


3-1206704399
ASgard
2008-03-28 14:39
2008.09.28
Программно изменить настройки SQL Server 2005


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


15-1217963808
palva
2008-08-05 23:16
2008.09.28
Не о рычагах, а об электронах


15-1217839451
Prohodil Mimo
2008-08-04 12:44
2008.09.28
Вот какое у нас вчера было море :о)




   Наверх