GO语言是google推出的一种全新的编程语言,它拥有表现力强、简洁、干净、高性能的特点。它的并发机制使得我们很容易编写出利用多核特性的程序。GO可以快速编译成机器代码,支持内存垃圾回收机制。它是一种快速、静态类型的编译型语言,但是用起来像一种动态类型的解释性语言。
GO语言应用场景
因为go语言的简单和高性能(性能接近C/C++)特点,目前主要应用场景如下:
- 中间件开发
- web开发
- 微服务开发
- 游戏服务端以及其他服务端应用
GO 语言代码结构
下面通过一个例子看看go语言代码长什么样子。
提示:大家不必在意这里代码的具体语法,后续章节会介绍go语言的语法,大家只要大致了解下代码长什么样子即可。
// 定义包, 一个程序通常只有一个main包,作为程序的入口
package main
// 导入包,这里导入fmt包
import "fmt"
// 通过func关键字定义函数
// 这里定义的是程序的入口函数main, 程序从这个函数开始执行
// 通常一个程序是有一个main函数
func main() {
// 调用fmt包的Println函数,打印一个字符串。
fmt.Println("Hello, tizi365")
}
运行这个程序会在控制台窗口输出:Hello, tizi365
下面在看一下go语言并发编程的例子:
package main
// 导入两个包fmt和time
import (
"fmt"
"time"
)
// 定义一个say函数,接受一个字符串参数s
// 这个函数的作用就是循环打印5次字符串参数s
func say(s string) {
// 循环5次
for i := 0; i < 5; i++ {
// 协程休眠100毫秒
time.Sleep(100 * time.Millisecond)
// 打印字符串s
fmt.Println(s)
}
}
// 入口函数main
func main() {
// 通过go关键词,开启一个新的协程执行say函数
go say("world")
// main函数继续执行say函数,这里其实是在主协程执行
say("hello")
}
go语言的协程,大家可以简单的理解成轻量级的线程,只要 一个关键词go,就可以开启一个协程并发的执行任务,默认情况下执行go语言程序会开启一个协程运行main函数,这个协程通常称为主协程,类似java的主线程,上面例子其实有两个协程在并发运行。