Go简介
Go的公司、场景应用
公司占比:
字节跳动领先,公司内部有上万个微服务使用go来编写,不久前也开源了GO RPC框架KiteX。
同时,腾讯、百度、美团、滴滴、深信服、平安、OPPO、知乎、去哪儿、360、金山、微博、哩哔哩、七牛、PingCAP、Google Facebook等公司也在大量使用Go语言。
业务维度:
在云计算、微服务、大数据、区块链、物联网等领域蓬勃发展。然后在云计算、微服务等领域已经有非常高的市场占有率。Docker、Kubernetes等,几乎所有的云原生组件全是用Go实现的。
Go的优势
C++不太适合在线Web业务。python随着业务体量的增长,容易遇到一些性能问题。
而Go入门简单,开发效率高,性能较好,开发和部署简单,可以解决python的依赖库版本问题。随着公司内部的基于golang的rpc和http框架的诞生与推广,越来越多的python服务使用golang重写,至今为止,golang已经成为内部使用率最高的编程语言。
基础语法
helloworld
package main //package main代表这个文件属于main包的部分,main包也就是程序的入口包
import (
"fmt" //导入了标准库里面的FMT包。这个包主要是用来往屏幕输入输出字符串、格式化字符串的。
)
func main() {
fmt.Println("hello world")
}
输入与输出
`fmt.Print`:不添加换行符并打印。
`fmt.Println`:添加换行符并打印。
`fmt.Printf`:使用占位符来指定输出格式并打印。
`fmt.Scan`:读取一个值
`fmt.Scanln`:读取一行文本,并尝试将其解析为参数列表中变量的值。
变量
变量的声明
package main
import (
"fmt"
)
func main() {
// 变量的声明方式一:明确变量类型
var A int
// 变量的声明方式二: 编辑器自己判断变量类型
var B
// 变量的声明方式三:省略var 用:= 值
C := "Hello World"
常量
将变量声明方式的一和二中的var改为const即为常量的声明(方式三在常量中没有)
字符串
可用+号直接拼接
if else
go的if else写法和C或C++类似。但go的if后面没有括号。如果你写括号的话,那么保存时编辑器会自动去掉。且Go里面的if后面必须接大括号,不能直接把if里面的语句写在if的同一行。
if 条件表达式 {
//逻辑代码
}
else if 条件表达式 {
//逻辑代码
}
else{
//逻辑代码
}
for循环
//go中只有for循环
package main
import "fmt"
func main() {
i := 1
for { //无条件循环,如果没有break就是死循环
fmt.Println("loop")
break
}
for j := 7; j < 9; j++ { //计数器循环
fmt.Println(j)
}
for n := 0; n < 5; n++ {
if n%2 == 0 {
continue //go中也有continue
}
fmt.Println(n)
}
for i <= 3 { //纯条件循环
fmt.Println(i)
i = i + 1
}
}