这个代码有什么问题,什么是os.Stdin?

时间:2015-11-18 01:59:58

标签: go

  1 package main                                                                                                          
  2                                                                                                                       
  3 import (                                                                                                              
  4         "bufio"                                                                                                       
  5         "fmt"                                                                                                         
  6         "os"                                                                                                          
  7 )                                                                                                                     
  8                                                                                                                       
  9 func main() {                                                                                                         
 10         input := bufio.NewScanner(os.Stdin)                                                                           
 11         if input.Scan == 1 {                                                                                          
 12                 fmt.println("true")                                                                                   
 13         }                                                                                                             
 14 }     

我想要创建一些要求用户输入的内容,然后检查该用户输入是否= 1

1 个答案:

答案 0 :(得分:2)

扫描代码文档说:

//Scan advances the Scanner to the next token, which will then be
//available through the Bytes or Text method. It returns false when the
//scan stops, either by reaching the end of the input or an error.

所以你可以这样做:

package main

import (
    "bufio"
    "fmt"
    "os"
)

func main() {
    input := bufio.NewScanner(os.Stdin)
    if input.Scan() && input.Text() == "1" {
        fmt.Println("true")
    }
}

os.Stdin是你如何让你的扫描仪从stdin获取它的输入。 (https://en.wikipedia.org/wiki/Standard_streams#/media/File:Stdstreams-notitle.svg

注意一点,注意导出函数的大写字母。 在第12行你写了

fmt.println  

它应该是

fmt.Println

你应该去 https://tour.golang.org/welcome/1 开始使用golang。