go语言上手——基础语言
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,不会自动跑
数组: var a [5]int
切片
可以用make创作切片,任意修改
必须赋值回去append(s,"新序列")
[2:5]左开右闭
不支持负数索引
map 类似于字典
随机序输出
range
函数
返回多个值 第一个值为value 第二个值错误信息
指针 add2并不起作用,需要使用指针,参考c的使用
结构体
可作为参数使用,能够进行结构体的修改,避免大结构体拷贝的开销
结构体方法
错误处理 可在函数的返回值加error
无错误return &u,nil
有错误return nil,error New("not found")
字符串操作
字符串格式化
fmt.Printf("s=%v\n",s) +v #v构造类型名称 字段名字和值 %.2f\n
json操作
每个字段第一个符号大写
若想输出小写风格,可以写字段类型为Age int 'json:"age"'
时间处理
time.Now()获取现在时间
tie.unix获取时间戳
数字解析 Atoi转字符串为数字 Itoa转数字为字符串
进程信息
go语言实战
生成随机数
导入“fmt”“math/rand”
加一行rand.Seed(time.Now().UnixNano()) 使用时间戳来初始化随机数种子
读取用户输入
完成猜谜游戏、命令行词典以及proxy SOCKS5 代理。