Показать сообщение отдельно
Старый 18.10.2016, 15:52   #1  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Разминка. Принять в метод map или таблицу
Чиста разминка для ума. Совершенно программистская задача.
для определенности, пусть будет https://github.com/mazzy-ax/SysCustVend

Хочу сделать некий метод, который принимает либо map, либо таблицу.
В этот метод хочу передать инициализированный или неинициализированный map.

что-то типа такого
X++:
str TheUltimateQuestionOfLifeTheUniverseAndEverything(anytype mapOrTable)
{
   if( /* Deep Thought question: mapOrTable is CustVendTable */ )
      return 'nirvana';
   return '42';
}

static void main(Arga args)
{
   CustTrans ctr;
   VendTrans vtr;
   CustVendTrans mapTr;
   CustVendTrans mapTrInit = vtr;
   CustTable ct;
   VendTable vt;
   CustVendTable mapT;
   CustVendTable mapTinit = ct;

   debug::assert('42' == TheUltimateQuestionOfLifeTheUniverseAndEverything (ctr));
   debug::assert('42' == TheUltimateQuestionOfLifeTheUniverseAndEverything (vtr));
   debug::assert('42' == TheUltimateQuestionOfLifeTheUniverseAndEverything (maptr));
   debug::assert('42' == TheUltimateQuestionOfLifeTheUniverseAndEverything (maptrInit));
   debug::assert('42' == TheUltimateQuestionOfLifeTheUniverseAndEverything (ct));
   debug::assert('42' == TheUltimateQuestionOfLifeTheUniverseAndEverything (vt));
   debug::assert('nirvana' == TheUltimateQuestionOfLifeTheUniverseAndEverything (mapTinit));
   debug::assert('nirvana' == TheUltimateQuestionOfLifeTheUniverseAndEverything (mapT));
}
что надо написать в условии для Величайшего компьютера, чтобы метод попадал в нирвану, когда ему передается map CustVendTable, и отвечал бы 42 для всех остальных аргументов?

какие минимальные действия нужно сделать в условии?
какой тип у аргумента метода будет достаточен? все-таки anytype - это как-то уж очень.

Последний раз редактировалось mazzy; 18.10.2016 в 17:13.