Форум: "Прочее";
Текущий архив: 2008.09.28;
Скачать: [xml.tar.bz2];
ВнизБывает же… Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.059 c