@bitfield

bitfield

Alex Bogma
bitfield

Дата рождения: 02.09.1982

Погромист по клавиатуре.

На сыры зарабатываю крестоблядством, питоноложеством и пописыванием под гейось.

7 я читаю 11 меня читают
288 постов
314 комментариев
bitfield
06 Aug 2015

Угадайте, что выведет программа.

func test()
{
  print("AAA")

  return

  autoreleasepool {
    print("BBB")
  }
}

test()
06 Aug 2015

postman, авторелизпул. если очень грубо -- это типа скоуп или поколение для гц
в обжц это кейворд @autoreleasepool.
в свифте -- это встроенная функция, принимающая лямбду.

#vhxmm/3 в ответ на /1
06 Aug 2015

а что тебя смущает?:) всё в рамках корректности

06 Aug 2015

hohoho, ну да. спасибо хоть ворнинг выдал.

#vhxmm/4 в ответ на /2
06 Aug 2015

с другой стороны он легко мог росто отрубить весь код после return, а не захватывать блок. но тут ссзб, я б за такой код в лицо бы бил:)

#vhxmm/5 в ответ на /4
06 Aug 2015

hohoho, дело не в захвате блока. он реально компилирует это как

return autoreleasepool({...});

где autoreleasepool - функция, возвращающая Void

#vhxmm/6 в ответ на /5
06 Aug 2015

ааа. вспомнил, да. это фишка такая у укороченных лямбд ггг. там надо просто дополнительный перевод строки делать вроде. подзабыл уже в чём там прикол был

#vhxmm/7 в ответ на /6
06 Aug 2015

hohoho, там грабли не в замыкании, а в том, что код

print("A")
return
print("B")

компилируется как

print("A");
return print("B");
#vhxmm/9 в ответ на /8

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.