go的猜数字小游戏 | 青训营笔记

127 阅读1分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的的第1篇笔记

GO 的难点

1. go最头疼的不是语法结构,而是go是一门强类型的语言,所有类型手动转换

2. go的输入还是比较麻烦的,windows的·\r\n·是不能转为byte的只有'\n'可以

3. 变量没使用就会报错,测试难!!!为了测试要注释好多变量,我觉得没有使用定义的变量给个警告就可以了。

func main(){
   var maxNum int
   maxNum=100
   rand.Seed(time.Now().UnixNano())
   guessNum := rand.Intn(maxNum)
   fmt.Println("please guss a number value range of 0-100!")
   reader := bufio.NewReader(os.Stdin)
   for  {

      readString, _, errForRead := reader.ReadLine()
      if errForRead == nil {
         myGuessNum, errForParse := strconv.Atoi(string(readString))
         if errForParse == nil{
            if solve(myGuessNum, guessNum){
               break
            }
         }
      }
   }
   defer func() {
      fmt.Println("开始回收垃圾了")
   }()
   fmt.Println("运行结束!")
}

func solve(guess int,ans int)  bool{
   if guess>ans{
      fmt.Println("猜的数字太大了!")
      return false
   }else if guess<ans{
      fmt.Println("猜的数字太小了!")
      return false
   }else{
      fmt.Println("恭喜猜对了,游戏结束!")
      return true
   }
}