这是我参与「第五届青训营 」笔记创作活动的第1天
Go语言入门——语言篇
Go语言使用场景:
首先字节跳动已经全面拥抱了go语言,公司内部有上万个微服务使用golang来编写。 腾讯、百度、美团、滴滴、深信服、Google Facebook等公司也在大量使用Go语言。 从业务维度看过语言已经在云计算、微服务、大数据、区块链、物联网等领域蓬勃发展。然后在云 计算、微服务等领域已经有非常高的市场占有率 Docker、Kubernetes、 Istio、 etcd、 prometheus 几乎所有的云原生组件全是用Go实现的。
Go语言的配置
golang与IDE安装不再赘述,这里阐述一下go语言模块代理 在终端中运行:
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
GO语言的特点
- 1.高性能、高并发
- 2.语法简单、学习曲线平缓
- 3.丰富的标准库
- 4.完善的工具链
- 5.静态链接
- 6.快速编译
- 7.跨平台
- 8.垃圾回收
基本数据结构与变量
第一个程序
package main
import (
"fmt"
)
func main(){
fmt.Println("hello world")
}
package main表明文件属于main包的一部分,包管理的意义类似于java,也可以用域名作为包名,同一个包下的文件属于同一个集合 “fmt"是标准库包
运行
go run main.go
or
go build main.go
./main
创建变量、变量赋值
变量有多种创建方式: ":="是简短变量声明
var a = "initial"
var b, c int = 1, 2
var d = true
var e float64 = 1145
f := e + 1 //简短变量声明
if\switch\for
与C++类似,不加括号,switch不用写break
//for
for j := 7; j < 9; j++ {
fmt.Println(j)
}
//if
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
//switch
a := 2
switch a {
case 1:
fmt.Println("one")
case 2:
fmt.Println("two")
case 3:
fmt.Println("three")
case 4, 5:
fmt.Println("four or five")
default:
fmt.Println("other")
}
构造结构体方法
type user struct {
name string
password string
}
func (u user) checkPassword(password string) bool {
return u.password == password
}
字符串操作
总结
总体来讲,go语言虽然形式上和C++,JAVA等语言不同,但是其核心方法和使用方法却比较类似,上手难度较低。