如何从Go中的用户输入打印出函数中的值

package main


import (

    "bufio"

    "fmt"

    "os"

)


func Option1() {

     fmt.Println("Option1")

}

func main() {

     for true {

         fmt.Println("Pleae enter text: ")

         reader := bufio.NewReader(os.Stdin)

         text, _ := reader.ReadString('\n')

         if text == "1" {

                Option1()

         }


      }

 }

因此,我的代码最终将具有多功能示例:option1 option2 等。每次用户键入 1、2、3 等时,我都会尝试执行一个函数,但我的代码不会打印出 Option1 中的任何内容。


您的帮助将不胜感激。


哆啦的时光机
浏览 147回答 1
1回答

心有法竹

基本规则是ReadString 读取直到输入中第一次出现 delim,返回一个字符串,其中包含直到并包括分隔符的数据。所以我习惯text = strings.TrimSpace(text)在比较之前对其进行修剪。查看修改后的程序。package mainimport (    "bufio"    "fmt"    "os"    "strings")func Option1() {    fmt.Println("Option1")}func main() {    for true {        fmt.Println("Pleae enter text: ")        reader := bufio.NewReader(os.Stdin)        text, _ := reader.ReadString('\n')        fmt.Println("Length of text,before trimming:", len(text))        text = strings.TrimSpace(text)        fmt.Println("Length of text,after trimming:", len(text))        if text == "1" {            Option1()        }    }}输出是VScode> go run sofstringcompare.goPleae enter text: 1Length of text,before trimming: 3Length of text,after trimming: 1Option1
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go