func Open (строка имени) (файл * Файл, ошибка ошибки)
Открыть открывает файл для чтения. В случае успеха методы возвращаемого файла могут быть используется для чтения; связанный файловый дескриптор имеет режим O_RDONLY. Если есть ошибка, он будет иметь тип * PathError.
Возвращаемое значение типа *os.File реализует интерфейс io.Reader.
Ответ 3
Тип * os.File реализует интерфейс io.Reader, поэтому вы можете вернуть файл как Reader.
Но я рекомендую вам использовать пакет bufio, если у вас есть намерения читать большие файлы, что-то вроде этого: