декларативная переменная scanfl вне функции - PullRequest
0 голосов
/ 03 марта 2019

Мне нужна помощь, чтобы выйти из угла, потому что я не понимаю логику проблемы, с которой я сталкиваюсь.

Мне нужно несколько раз запрашивать ввод пользователя, поэтому логически я создаюфункция вроде:

func askstuff() {
    fmt.Println("Write something:")
    var input string
    fmt.Scanln(&input)
}

теперь мне нужно получить пользовательский ввод в переменную из функции main (), но у меня не декларативный вопрос и проблема с мозгом .... на самом деле яожидал сделать что-то вроде, но это неправильно

func main() {
    askstuff()
    println askstuff(input)
}

Я читал все посты и документы, и я понял, что вместо функции я должен использовать декларативную переменную из main (), втело, перед main ().Он работает как талисман, только если есть жестко запрограммированное фиксированное значение, но это не так с входом интерактивной консоли Scanln.

Мне нужно выполнить так много раз askstuff (), что это сведет меня с ума безотдельный класс / функция, но мне также нужно закрыть вход в переменную внутри функции main () из функции askstuff (), чтобы иметь возможность работать с ней.

Я на 100% в порядке сОтвет RTFM, если вы дадите мне один пример, который не использует фиксированное жестко закодированное значение, но использует взаимодействие с пользовательской консолью при помощи scanln.

Во всех примерах книг никогда не используется вход для scanln, всегда фиксированная декларативная переменная вне main() в теле.

Работаю ли я с определенным ограничением сканирования?концепция дизайна имеет значение с моей логикой?или есть лучшие способы?

Пожалуйста, не просто дайте мне только фрагмент о том, как исправить проблему, объясните мне, где и почему моя логика неверна, чтобы понять это и не повторять ошибкув будущем.

1 Ответ

0 голосов
/ 03 марта 2019

Вернуть строку из askstuff и использовать по мере необходимости в вызывающей стороне:

func askstuff() string {
    fmt.Println("Input to exit digit X:")
    var input string
    fmt.Scanln(&input)
    return input
}

func main() {
    x := askstuff()
    fmt.Println(x)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...