初识Go语言 | 青训营

165 阅读2分钟

以下内容来自于走进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

go.dev/

studygolang.com/dl

goproxy.cn/

可以使用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实战,请看下一篇文章 啾咪~