ДВС!
Помогите расшифровать фрагмент кода:
int s = [] (int n) { int i = 1; while(n--) i*=2; return i; }(n);
Что все это означает? особенно (n) и (int n) в круглых скобках после того как оно уже было объявлено в программе ранее? Спасибо
Ответ
На C#:
int s = ((Func
На русский:
int s — объявить переменную s типа int...
= — ...и инициализировать её значением, равным...
[] — вот тут будет лямбда-функция, это типа функция, но записанная прямо здесь, а не отдельно
(int n) — список аргументов функции — один int, назовём его n
{ — началось тело функции:
int i = 1; — завели локальную переменную i, инициализировали значением 1
while(n--) i*=2; — пока n не равно 0, удвоить i; после каждой проверки уменьшить n
return i; — вернуть i
} — а это тело функции закончилось
(n) — ...функцию вызываем с аргументом n, и результатом вызова инициализируем переменную s
— конец объявления переменной s. (Спасибо @GreenDragon за уточнение!)
Комментариев нет:
Отправить комментарий