以下内容来自于走进go语言基础语法课程 #青训营笔记创作活动
一、Go语言简介
1.1 什么是Go
1. 高性能、高并发
下面这段代码仅仅使用10行代码就实现了一个承载静态文件访问的支持高访问高并发http服务器
package main
## import (
"net/http"
)
func main() {
http.Handle("/",http.FileServer(http.Dir(".")))http.ListenAndServe(":8080",nil)
}
2.语法简单、学习曲线平缓
3.丰富的标准库
和Python一样具有很丰富的标准库,稳定高效。
4.完善的工具链
内置完整的单元测试框架,支持单元测试、性能测试、代码覆盖率、数值竞争检测、性能优化,保证代码运行可靠性。
5.静态链接
在Go里面默认所有编译结果默认是静态链接的,部署非常方便快捷 (相对于Java庞大的JRE、C++需要一堆.so)
6.快速编译
静态语言里面几乎最快的编译效率。
7.跨平台
能在常见的linux、Windows、macOS系统上运行,也能用来开发安卓、ios软件,路由器甚至树莓派上运行,有很方便的交叉编译特性。
8.垃圾回收
与java类似,无需考虑缓存分配释放,可以专注于业务逻辑。
1.2 哪些公司正在使用GO
字节、腾讯、谷歌、facebook、美团、滴滴、七牛云、bilibili、百度、PngCAP等 Go在云计算、区块链、微服务等领域有大量应用。
二、Go入门
2.1 开发环境安装-Golang
可以使用Golang集成开发环境
2.2 基础语法——从HelloWorld开始
package main //程序的入口包
import (
"fmt") //导入fmt包。主要是输入输出字符串相关
func main( ) {
fmt.PrintIn("hello world"
}//输出hello world
2.3变量
package main
import (
"fmt"
"math"
)
func main() {
var a = "initial"
var b, c int = 1, 2
var d = true
var e float64 // 第一种变量声明方式 默认为0
f := float32(e) //第二种变量声明方式
g := a + "foo"
fmt.Println(a, b, c, d, e, f) // initial 1 2 true 0 0
fmt.Println(g) // initialfoo
const s string = "constant" //const 常量,没有确定类型,根据上下文自动确定
const h = 500000000
const i = 3e20 / h
fmt.Println(s, h, i, math.Sin(h), math.Sin(i))
// constant 500000000 6e+11 -0.28470407323754404 0.7591864109375384
}
2.4 条件与循环
if-else
package main
import "fmt"
func main() {
if 7%2 == 0 {
fmt.Println("7 is even")
} else {
fmt.Println("7 is odd")
}
if 8%4 == 0 {
fmt.Println("8 is divisible by 4")
}
if num := 9; num < 0 {
fmt.Println(num, "is negative")
} else if num < 10 {
fmt.Println(num, "has l digit")
} else {
fmt.Println(num, "has multiple digits")
}
}
循环
package main
import "fmt"
func main( ) {
i:=1
for {
fmt.Println("loop")
break //跳出循环
}
for j := 7; j < 9; j++ {
fmt.Println(j)
}
for n := 0; n < 5; n++ {
if n%2 == 0 {
continue //继续循环
}
fmt.Println(n)
}
for i <= 3 {
fmt.Println(i)
i = i + 1
}
}
第三节Go实战,请看下一篇文章 啾咪~