这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
1.go的优点
- 高性能、高并发
- 语法简单、学习曲线平缓
- 丰富的标准库完善的工具链
- 静态链接
- 快速编译
- 跨平台
- 垃圾回收 so->随着框架的推广,越来越多的python服务使用golang重写,至今为止,golang已经成为内部使用率最高的编程语言
2.基础语法-Hello World
package main
import(
"fmt"
)
func main(){
fmt.Println("hello world")
}
- packet main 代表这个代码属于main包的一部分
- fmt包是用来标准化输入输出的
3.基础语法-变量
package main
import(
"fmt"
"math"
)
func main(){
var a= "initial"
var b,c int = 1,2
var d= true
var e float64
f:=float32(e)
g=a+"foo"
fmt.Println(a,b,c,d,e,f)//initial 1 2 true 0 0
fmt.Println(g) //initialapple
const s string="constant"
const h = 500800000
const i =3e20/h
fmt.Println(s,h,i,math.Sin(h),math.sin(i))
- go 语言的字符串是内置类型,可以直接通过加号拼接,也能够直接用等于号去比较两个字符串
- var就是自动推导变量
- var b,c int指定为int类型的写法
- 赋值是:=
4.基础语法-if else
- 无括号
5.基础语法-循环
- 没有while循环 用 for i<=3
- 12行就是正常的for循环
6.基础语法-switch
- 没有括号
- 不用break 自动break
7.基础语法-数组
- var a [5]int前半部分和c语言相同,后面的int声名类型
- b:= [5]int{1,2,3,4,5}用[5]来声名数组长度,用int来表示类型,{}里面的内容来赋值
8.基础语法-map
package main
import (
"fmt"
)
func main() {
s := make(map[string]int)
s["one"] =1
s["two"] =2
fmt.Println(m)//map[one:1 two:2]
fmt.PrintIn(len(m)) // 2
fmt.PrintIn(m["one"]) // 1
fmt.PrintIn(m["unknow"]) // 0
r,ok:=m["unknow"]
fmt.Println(r,ok)//0 false
delete(m,"one")
m2:=map[string]int{"one":1,"two":2}
var m3 = map[stirng]int{"one":1,"two":2}
fmt.Println(m2,m3)
- map就是哈希表
- 注意定义方式:s := make(map[string]int)
- 删除delete(m,"one")
- 如果有一个unknow的key那么就是0