Go语言是Golanguage的简称,始于2007年,是一种开源的强类型、编译并发型语言
1. why GO
Go语言特色:
- 简洁、快速、安全
- 并行、有趣、开源
- 内存管理、数据安全、编译迅速
Go语言用途:
- Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过。
- 区块链最主流的编程语言,支持数据处理和大数据并发能力,国外如Google、Amazon AWS、Cloudflare、CoreOS等,国内如七牛、阿里、小米、京东等都已经开始大规模使用Golang开发其云计算相关产品。
- 相较于C/C++,开发效率高,运维难度低;相较于Lua/Python,编译型语言,性能更优。
2.环境选择
常规开发平台为VScode和Goland
3.HelloWord和guessing-game
你好世界
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
猜数游戏
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
}
}
}
4.Go的发展方向
- 区块链研发工程师
区块链的核心思想是去中心化,让每个人都能参加数据库的记录,比如虚拟货币 - Go服务端
目前服务器端主要采用C和C++实现,只要是C和C++能做的事情,Go语言就可以实现且做的不错。因为Go的作者Ken Thompson也是C语言的设计者,相当于对C语言设计的部分优化,比如处理日志、数据打包、虚拟机处理等,据说美团后台的流量处理就是采用Go语言编写。Go语言据处理和大并发处理的能力非常突出 - 游戏软件工程师
游戏数据通道会使用Go语言 - Golang分布式/云计算软件工程师
盛大云CDN、京东分布式文件系统
了解go的语言特性和发展情况,对于我们认知主流技术更迭,健全自身技术发展,对接云原生等新趋势,进而掌握个人发展主动权有重要意义。