学习资料:Go 语言上手 - 基础语法 .pptx
01 - 简介
1.1 - golang特点
- 高性能、高并发:高性能标准库
- 语法简单、学习曲线平缓:基于C语言
- 丰富的标准库:
- 完善的工具链:test、fmt、性能优化
- 静态链接:编译成可执行文件
- 快速编译:静态语言中几乎最快
- 跨平台:根据平台不同会编译成不同可执行文件
- 垃圾回收:三色消除法
2 - 基础语法
略
3 - 实战
3.1 - 猜谜游戏
注意字符串处理时可能以 \r\n 结尾,会使得字符串转换时失败
package main
import (
"bufio"
"fmt"
"math/rand"
"os"
"strconv"
"strings"
"time"
)
func main() {
maxNum := 100
rand.Seed(time.Now().Unix())
secretNum := rand.Intn(maxNum)
//fmt.Println(secretNum)
fmt.Print("Please guess a number: ")
reader := bufio.NewReader(os.Stdin)
for {
input, err := reader.ReadString('\n')
if err != nil {
fmt.Println("read failed")
continue
}
input = strings.TrimSuffix(input, "\r\n")
guess, err := strconv.Atoi(input)
if err != nil {
fmt.Println("Invalid input")
continue
}
fmt.Println("Your guess is:", guess)
if guess > secretNum {
fmt.Println("Larger, guess a smaller one")
} else if guess < secretNum {
fmt.Println("Smaller, guess a larger one")
} else {
fmt.Println("You win!!!")
break
}
}
}输出:
Please guess a number: 50
Your guess is: 50
Smaller, guess a larger one
75
Your guess is: 75
Smaller, guess a larger one
80
Your guess is: 80
Smaller, guess a larger one
82
Your guess is: 82
Larger, guess a smaller one
81
Your guess is: 81
You win!!!3.2 - 在线词典