走进go基础语法|青训营

126 阅读2分钟

go语言上手——基础语言

课程源码:github.com/wangkechun/…

go语言:

高性能高开发 语法简单、学习曲线平缓 丰富的标准库 静态链接 快速编译 跨平台(linux\路由器) 垃圾回收

package main
import(
     “net/http”
)
func main(){
  http.Handle("/",http.FileServer(http.Dir(".")))
  http.ListAndServe(":8000",nil)
}

哪些公司在使用go语言:

字节跳动 谷歌 脸书 腾讯 美团 滴滴 bilibili 百度 PingCAP

为什么使用go语言:

python性能问题->go c++不适合在线web业务 非java开发 PRC HTTP框架的推广

golang的安装:

golang官网学生许可证->vscode

基础语法

package main
import(
"fmt"
)
func main(){
    fmt.PrintIn("hello world")
}

变量

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.PrintIn(a,b,c,d,e,f)
  fmt.PrintIn(g)
  const s string="constant"
  const h=500000
  const i=3e20/h
  fmt.PrintIn(s,h,i,math.Sin(h),math.Sin(i))
}

if 7%2==1 {

fmt

}

for j:=7;j<9;j++{

}

switch a{}不需要加break,不会自动跑

image.png

数组: var a [5]int

image.png

切片

可以用make创作切片,任意修改

必须赋值回去append(s,"新序列")

[2:5]左开右闭

不支持负数索引 image.png

map 类似于字典

随机序输出 image.png

range

image.png

函数

返回多个值 第一个值为value 第二个值错误信息

image.png

指针 add2并不起作用,需要使用指针,参考c的使用

image.png

结构体

可作为参数使用,能够进行结构体的修改,避免大结构体拷贝的开销

image.png

结构体方法

image.png

错误处理 可在函数的返回值加error

无错误return &u,nil

有错误return nil,error New("not found")

image.png

字符串操作

image.png

字符串格式化

fmt.Printf("s=%v\n",s) +v #v构造类型名称 字段名字和值 %.2f\n

image.png

json操作

每个字段第一个符号大写

若想输出小写风格,可以写字段类型为Age int 'json:"age"'

image.png

时间处理

time.Now()获取现在时间

tie.unix获取时间戳

image.png

数字解析 Atoi转字符串为数字 Itoa转数字为字符串

image.png

进程信息

image.png

go语言实战

生成随机数

导入“fmt”“math/rand”

image.png

加一行rand.Seed(time.Now().UnixNano()) 使用时间戳来初始化随机数种子

读取用户输入

image.png

完成猜谜游戏、命令行词典以及proxy SOCKS5 代理。