go
过路打瓶酱油
我就打瓶酱油,一个吃瓜群众~
展开
-
Go Map
Map定义mapm1 := map[string]int { "c": 1, "cpp": 2,}m2 := make(map[string]string) // m2 = empty mapvar m3 map[string]int // m3 = nilmap每次循环输出数据顺序都不一样// 循环for key, value := range m1 ...原创 2018-08-03 17:17:51 · 125 阅读 · 0 评论 -
Go数组和切片
数组定义数组var array1 [5]intarray2 := [3]int {1, 2, 3}array3 := [...]int {1, 2, 3}循环数组for key, value := range arrays { ......}for _, value := range arrays { ......}数组作为参数是值传...原创 2018-08-03 12:34:16 · 183 阅读 · 0 评论 -
Go函数
Go函数要点返回值类型写在后面可返回多个值函数可作为参数没有默认参数、可选参数,仅有可变参数原创 2018-08-02 20:28:06 · 177 阅读 · 0 评论 -
Go变量
Go变量定义变量使用var关键字定义var a, b, c ,可以不赋初值且不注明变量类型var a, b int = 1, 2,int可以省略,编译器通过初始值推算变脸类型var关键字定义的方式可放在函数内,或函数外(包内)都可使用var()形式集中定义:=方式定义关键字a, b int := 1, false,类型可省略:=,仅能在函数内部使用内...原创 2018-08-02 17:36:51 · 226 阅读 · 0 评论 -
Go routine
协程 - 轻量级“线程” - 非抢占式多任务处理,由协程主动交出控制权 - 编译器/解释器/虚拟机层面的多任务 - 多个协程可能在一个或多个线程上运行 goroutine的定义 - 任何函数只需加上go就能送给调度器运行 - 不需要在定义时区分是否是异步函数 - 调度器在合适的点进行切换 - 使用-race检测数据访问冲突 goroutine可能切换的点 - i/o sele...原创 2018-08-05 20:35:57 · 238 阅读 · 0 评论 -
Go 文档
运行godoc -http :8080,即可在localhost:8080查看文档 queue_test.go:func ExampleQueue_Push() { q := Queue{} q.Push(1) fmt.Println(q.Pop()) // Output: // 1}为自己的包写函数示例...原创 2018-08-05 15:04:27 · 318 阅读 · 0 评论 -
Go 测试
测试传统测试or表格测试传统测试测试数据和测试逻辑混在一起出错信息不明确一旦一个信息出错,整个测试结束表格驱动测试分离的测试数据和测试逻辑明确的出错信息可以部分失败Example:func TestLenOfNorepeatingSubStr(t *testing.T) { tests := []struct { str stri...原创 2018-08-05 12:42:14 · 259 阅读 · 0 评论 -
Go 资源管理与出错处理
资源管理defer确保调用在函数结束时发生参数在defer语句时计算defer列表为后进先出错误处理panic停止当前函数一直向上返回,并执行每层的defer语句若无recover,退出程序recover仅在defer调用中使用获取panic值若无法处理,可重新panic...原创 2018-08-04 20:52:57 · 139 阅读 · 0 评论 -
Go扩展已有类型
扩充系统或第三方的类型 - 定义别名 - 使用组合定义别名example:type myStructName struct { name *package.targetStruct}func (name *myStructName)funcName() { .....扩展方法}使用组合example:package Queuetype ...原创 2018-08-03 21:15:17 · 1368 阅读 · 0 评论 -
Go封装
公私有方法、结构、变量、常量等,针对包的范围。首字母大写代表 public首字母小写代表 pirvate包每个目录只有一个包main包包含可执行入口为结构定义的方法,必须放在一个包下,可以是不同的文件...原创 2018-08-03 20:48:34 · 565 阅读 · 0 评论 -
Go 结构体和方法
go面向对象:仅支持封装,不支持继承和多态。没有class,只有structstruct定义type structName struct { attributesName type ......}// Exapmle:type treeNode struct { value int left, right *treeNode}var r...原创 2018-08-03 20:28:34 · 513 阅读 · 0 评论 -
Go 字符串
go查找字符串不重复最长子串package mainimport "fmt"func lenOfNorepeatingSubStr(str string) int { lastChIndex := make(map[rune] int) startIndex := 0 maxLeng := 0 for index, ch := range []rune(...原创 2018-08-03 17:31:39 · 203 阅读 · 0 评论 -
Go 判断页面编码
首先安装gopm get golang.org/x/net/html,gopm get golang.org/x/text接下来resp, err := http.Get("http://city.zhenai.com/")if err != nil { panic(err)}defer resp.Body.Close()if resp.StatusCode != htt...原创 2018-08-08 18:03:00 · 2092 阅读 · 0 评论