В чем разница между STDIN и $ stdin в Ruby?

Ruby имеет два способа обращения к стандартному вводу: константа STDIN и ] $ stdin глобальная переменная.

Помимо того факта, что я могу назначить другой объект IO для $ stdin , потому что он ' не является константой (например, перед форкованием для перенаправления ввода-вывода у моих детей), в чем разница между STDIN и $ stdin ? Когда мне следует использовать каждый из них в моем коде?

Если я переназначу $ stdin , повлияет ли это на STDIN ?

И применимо ли это также к STDOUT ] / $ stdout и STDER / $ stderr ?

37
задан the Tin Man 26 November 2010 в 09:31
поделиться