Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Вниз

Тернарный оператор в Delphi   Найти похожие ветки 

 
K-1000 ©   (2016-01-28 15:22) [0]

Как бы вы назвали функцию выполняющую роль тернарного оператора в Delphi?

Есть IfThen(), но делая свою "либу" часто встречаю пересечения с модулем "Math.pas". Лучше сделать свои перегруженные функции с другим названием.


 
Inovet ©   (2016-01-28 15:32) [1]

iif часто встречается


 
Dimka Maslov ©   (2016-01-28 15:45) [2]

Si_Ergo_Aliud


 
Rouse_ ©   (2016-01-28 15:51) [3]

IIF есесн - классика


 
Kerk ©   (2016-01-28 16:29) [4]

Побуду занудой. Такая функция не может выполнять роль тернарного оператора.


 
Юрий Зотов ©   (2016-01-28 18:02) [5]

ThatFunctionIsTernaryOperator


 
Rouse_ ©   (2016-01-28 18:24) [6]


> Kerk ©   (28.01.16 16:29) [4]
> Побуду занудой. Такая функция не может выполнять роль тернарного
> оператора.

Я тоже - нет такого понятия как тернарный оператор в двоичной схеме :)


 
DayGaykin ©   (2016-01-28 18:33) [7]


> Побуду занудой. Такая функция не может выполнять роль тернарного
> оператора.

Замыканиями можно сделать, нет?


 
Kerk ©   (2016-01-28 18:34) [8]


> DayGaykin ©   (28.01.16 18:33) [7]

Можно. Но выглядеть будет жутко :)


 
DayGaykin ©   (2016-01-28 18:52) [9]

Вот еще немного жути:

program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
 System.SysUtils;

 threadvar it: Boolean;
 threadvar v: Integer;
 
 function ifthen(a,b,c: boolean): integer;
 begin
   Result := v;
 end;

 function _if(b:boolean): Boolean;
 begin
   it := b;
   Result := b;
 end;
 
 function _v(i: Integer): Boolean;
 begin
   v := i;
   Result := False
 end;

begin
 try
   Writeln(
     ifthen(it and _v(10), it or _v(3), _if(1<0))
   );
   Writeln(
     ifthen(it and _v(10), it or _v(3), _if(1>0))
   );
 except
   on E: Exception do
     Writeln(E.ClassName, ": ", E.Message);
 end;
 Readln;
end.



 
DayGaykin ©   (2016-01-28 19:01) [10]

Или так, чуть менее жутко:

program Project1;
 threadvar _v: Integer;

 function ifthen(a: boolean): integer;
 begin
   Result := _v;
 end;

 function v(i: Integer): Boolean;
 begin
   _v := i;
   Result := True;
 end;

begin
   Writeln(
     ifthen((1<0) and v(10) or v(3))
   );
   Writeln(
     ifthen((1>0) and v(10) or v(3))
   );
 Readln;
end.


 
Юрий Зотов ©   (2016-01-28 19:07) [11]

И ЭТО называется синтаксическим САХАРОМ?

Это - синтаксический хинин.


 
картман ©   (2016-01-28 19:33) [12]

мож стрихнин?


 
Rouse_ ©   (2016-01-28 19:35) [13]

Эмм, стесняюсь спросить, а где здесь тернарный оператор? :)


 
Сергей Суровцев ©   (2016-01-29 04:34) [14]

>DayGaykin ©   (28.01.16 19:01) [10]
>Или так, чуть менее жутко:

Я бы сказал, просто чуть более коротко.


 
KSergey ©   (2016-01-29 10:13) [15]

Стандартное название таких функций iif, хотя при использовании использовании функций есть серьёзное отличие от истинно тернарного оператора.


 
kilkennycat ©   (2016-01-31 02:10) [16]

компилятор xc8 в случае использования тернара в виде a=b?c:d создает более громоздкий код, чем при if b then a=c else a=d
Сиё есть печалька.



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

Форум: "Прочее";
Текущий архив: 2017.01.15;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.052 c
2-1431020136
Zheksonz
2015-05-07 20:35
2017.01.15
Можно ли в поля Blob Graphic загружать jpg файлы?


15-1455053404
Юрий
2016-02-10 00:30
2017.01.15
С днем рождения ! 10 февраля 2016 среда


3-1310747259
Дмитрий
2011-07-15 20:27
2017.01.15
Вылет при изменении данных в гриде (Eh)


2-1423657337
Александр_2015
2015-02-11 15:22
2017.01.15
DBGrid с возможностью WordWrap


2-1429430826
Олег Г.
2015-04-19 11:07
2017.01.15
Не находится существующий файл





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский