Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
15-1217299919
Slider007
2008-07-29 06:51
2008.09.28
С днем рождения ! 29 июля 2008 вторник


15-1217933277
Rouse_
2008-08-05 14:47
2008.09.28
От как нужно отмывать деньги на разработках :)


2-1219260710
Рома
2008-08-20 23:31
2008.09.28
bios


2-1219263165
Stan
2008-08-21 00:12
2008.09.28
Для чего в interface указывать GUID?


15-1217925962
DoKi
2008-08-05 12:46
2008.09.28
рассчёт нормалей





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский