Go语言上手-基础语法 | 青训营笔记

79 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天

Go语言上手-基础语法

入门

开发环境

一、简介

  • 高性能、高并发
  • 语法简单、学习曲线平缓
  • 丰富的标准库
  • 完善的工具链
  • 静态链接
  • 快速编译
  • 跨平台
  • 垃圾回收

基础语法

  • Hello Wrold
  • 变量
  • if else
  • 循环
  • switch
  • 数组
  • 切片
  • map
  • range
  • 函数
  • 指针
  • 结构体
  • 结构体方法
  • 错误处理

标准库

  • 字符串操作
  • 字符串格式化
  • JSON处理
  • 时间处理
  • 数字解析
  • 进程信息

实战

猜谜游戏

这个游戏较为简单,就是利用随机种子生成一个随机数,每次读取输入内容与随机数进行比较,直到相等,需要注意读入字符串的处理

package main

import (
   "bufio"
   "fmt"
   "math/rand"
   "os"
   "strconv"
   "strings"
   "time"
)

func main() {
   maxNum := 100
   rand.Seed(time.Now().UnixNano())
   secretNumber := rand.Intn(maxNum)
   // fmt.Println("The secret number is ", secretNumber)

   fmt.Println("Please input your guess")
   reader := bufio.NewReader(os.Stdin)
   for {
      input, err := reader.ReadString('\n')
      if err != nil {
         fmt.Println("An error occured while reading input. Please try again", err)
         continue
      }
      input = strings.Trim(input, "\r\n")

      guess, err := strconv.Atoi(input)
      if err != nil {
         fmt.Println("Invalid input. Please enter an integer value")
         continue
      }
      fmt.Println("You guess is", guess)
      if guess > secretNumber {
         fmt.Println("Your guess is bigger than the secret number. Please try again")
      } else if guess < secretNumber {
         fmt.Println("Your guess is smaller than the secret number. Please try again")
      } else {
         fmt.Println("Correct, you Legend!")
         break
      }
   }
}

命令行词典

命令行词典中,用到了许多的工具,JSON转换器等,非常地方便,实现起来轻松许多了

SOCKS5代理

网络这一块的内容,没了解过,老师的讲解方式,让我能够同步老师的思路,主要就是确定请求的组成,然后分别读取判断