Ruby имеет константы и глобальные переменные для stdio.Ruby stdio consts и globals, в чем польза?
А именно, consts STDIN
, STDOUT
, STDERR
и их переменные аналоги, $stdin
, $stdout
, $stderr
.
Я понимаю разницу между константой и переменной. Я знаю, что константы неизменно устанавливаются в дескрипторы файла в тот момент, когда скрипт был exec'd.
Я также понимаю, что вы можете изменить (некоторые) переменные во время выполнения.
Мне любопытно относительно практического использования такой функции. Зачем вам это делать? Что вы можете достичь?
Видя некоторые примеры кода или даже просто используемые случаи, извлеченные из проектов в реальном мире, было бы замечательно.
Update: Из того, что я понимаю, до сих пор, кажется, что при написании собственных библиотек/программ, вы должны предпочесть использовать переменные над константами, так что пользователи могут далее гадость с ним. Правильно?
Почему бы вам не инициализировать буфер вместо StringIO? – kch
Когда я написал эту функцию gazillion несколько лет назад, я был зеленым и не знал о StringIO. Черт, тогда это был Ruby 1.6. Сегодня первый случай, когда я должен был смотреть на этот код с тех пор. Но независимо от того, использует ли код StringIO, это проблема с периферией. –
Действительно, это периферийная проблема, а stringio - меньше кода, что помогает читаемости соответствующей части примера. Я собираюсь принять ваш ответ. Я отредактирую его, чтобы использовать stringio, не стесняйтесь возвращать его, если вам не нравятся мои изменения. – kch