Главная страница
    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.182 c
2-1426067911
aka
2015-03-11 12:58
2017.01.15
TObject через ссылку


15-1448227801
Юрий
2015-11-23 00:30
2017.01.15
С днем рождения ! 23 ноября 2015 понедельник


15-1448570868
DayGaykin
2015-11-26 23:47
2017.01.15
Добавление зависимых записей.


2-1423545320
i2e
2015-02-10 08:15
2017.01.15
VK_ESCAPE и VK_E


3-1310534275
bestonix
2011-07-13 09:17
2017.01.15
TUniTable





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