Как печатать в консольных окнах?

Я хочу запустить мою программу go из cmd следующим образом:

 C:\go\awesomeProject> goprogramm.exe -generate -val=2

и хочу получить такую ​​обратную связь:

> Process started
> Something went wrong. Type e-mail to receive report:
> |...

Да, много гуглил. Стандартный вывод, go exec'ing, каналы и т. д. Просто не могу перепутать.

Это описано на первой странице Go-тура: tour.golang.org/welcome/1

Adrian 19.07.2018 15:02
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
1
86
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Проще всего использовать пакет fmt и его глобальные функции, например:

fmt.Println("Process started")
fmt.Println("Something went wrong. Type e-mail to receive report:")

var i int = 3
var err error = io.Eof
fmt.Printf("And some formatted text: number: %d, an error: %v\n", i, err)

Если вам нужна дополнительная конфигурация или возможность перенаправления вывода, например в файл (в будущем), то вы можете использовать пакет log.

log.Println("Process started")
log.Println("Something went wrong. Type e-mail to receive report:")

var i int = 3
var err error = io.Eof
log.Printf("And some formatted text: number: %d, an error: %v", i, err)

Одно заметное отличие состоит в том, что по умолчанию пакет fmt записывает в os.Stdout, а пакет log записывает в os.Stderr. Оба они появляются в вашей консоли, но не следует забывать, если вы хотите перенаправить эти потоки. Другое отличие состоит в том, что пакет log добавляет новую строку к каждому вызову, если он не заканчивается на ней.

Как перенаправить на cmd?

StayCool 19.07.2018 10:05

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

icza 19.07.2018 10:06

Да, вывод появляется в моей IDE приставка. Но он не появляется, когда я запускаю exe из командная строка

StayCool 19.07.2018 10:46

@StayCool Вы уверены, что перестроили и запустили последнюю версию своего приложения? Сначала попробуйте запустить его с go run appname.go, чтобы он всегда компилировался.

icza 19.07.2018 12:37

Другие вопросы по теме