Ruby's File.open и потребность в f.close

В большинстве языков программирования общеизвестно, что поток для работы с файлами открыт-использует-закрывает. Тем не менее, я много раз видел в кодах Ruby непревзойденные вызовы File.open, и, более того, я нашел эту жемчужину знаний в документации по ruby: [17:12] да, а также количество файловых дескрипторов обычно ограничено ОС
[17:29] Я предполагаю, что у вас могут легко закончиться доступные файловые дескрипторы до того, как очистит сборщик мусора. в этом случае вы можете захотеть использовать их самостоятельно. "заявлено сборщиком мусора". означает, что сборщик мусора действует в какой-то момент в будущем. и это дорого. множество причин для явного закрытия файлов.

  1. Нужно ли явно закрывать
  2. Если да, то почему GC автоматически закрывается?
  3. Если нет, то почему опция?

86
задан Benjamin Gruenbaum 10 February 2014 в 00:49
поделиться