上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 167 下一页
摘要: package main /* Channel Channel 是 goroutine 沟通的桥梁, goroutine是通过通信来进行内存的共享, 而不是通过内存的共享来进行通信,通过Channel通道来共享内存, 通过通道的通信(写进去在读出来)进行数据的传递,大都是阻塞同步的 通过 make 创建,close 关闭 Channel 是引用类型 可以使用 for range 来迭代不断操... 阅读全文
posted @ 2017-12-21 23:06 无天666 阅读(185) 评论(0) 推荐(0)
摘要: package main import ( "fmt" ) //go语言提供了一个结构或者形式来帮助处理多个channel的发送和接收问题,这个结构叫做select, //select和switch相近,但是select是专门针对channel的,可以同时处理多个channel的发送与接收, //当多个channel可以发送和接收的时候,按随机顺序处理,然后把一个个任务处理完, f... 阅读全文
posted @ 2017-12-21 21:45 无天666 阅读(242) 评论(0) 推荐(0)
摘要: package main /** 并发concurrency 很多人都是冲着 Go 大肆宣扬的高并发而忍不住跃跃欲试,但其实从 源码的解析来看,goroutine 只是由官方实现的超级“线程池”而已。 不过话说回来,每个实例 4-5KB 的栈内存占用和由于实现机制而大幅 减少的创建和销毁开销,是制造 Go 号称的高并发的根本原因。另外, goroutine 的简单易用,也在语言层面上给予了... 阅读全文
posted @ 2017-12-21 20:38 无天666 阅读(905) 评论(0) 推荐(0)
摘要: package main /** 反射reflection 反射可大大提高程序的灵活性,使得 interface{} 有更大的发挥余地 反射使用 TypeOf 和 ValueOf 函数从接口中获取目标对象信息 反射会将匿名字段作为独立字段(匿名字段本质) 想要利用反射修改对象状态,前提是 interface.data 是 settable, 即 pointer-interface - 通过反... 阅读全文
posted @ 2017-12-21 16:37 无天666 阅读(284) 评论(0) 推荐(0)
摘要: package main /* 接口interface 接口是一个或多个方法签名的集合 只要某个类型拥有该接口的所有方法签名,即算实现该接口,无需显示 声明实现了哪个接口,这称为 Structural Typing 接口只有方法声明,没有实现,没有数据字段 接口可以匿名嵌入其它接口,或嵌入到结构中 将对象赋值给接口时,会发生拷贝,而接口内部存储的是指向这个 复制品的指针,既无法修改复制品的状... 阅读全文
posted @ 2017-12-21 13:52 无天666 阅读(322) 评论(0) 推荐(0)
摘要: package main /* 方法method Go 中虽没有class,但依旧有method 通过显示说明receiver来实现与某个类型的组合 只能为同一个包中的类型定义方法 Receiver 可以是类型的值或者指针 不存在方法重载 可以使用值或指针来调用方法,编译器会自动完成转换 从某种意义上来说,方法是函数的语法糖,因为receiver其实就是 方法所接收的第1个参数(Method... 阅读全文
posted @ 2017-12-21 00:07 无天666 阅读(314) 评论(0) 推荐(0)
摘要: go语言没有class,struct就是go语言的class. 阅读全文
posted @ 2017-12-20 20:35 无天666 阅读(345) 评论(0) 推荐(0)
摘要: slice和map是引用类型, 匿名函数不能作为顶级函数,只能够放在函数里面, panic和recover类似于其他语言的try catch,用于异常的返回和错误的处理 。出现了错误panic,要从错误中恢复过来, 程序进入panic之后函数不再执行(类似于发生了错误跑出了异常),要想在panic之 阅读全文
posted @ 2017-12-20 16:37 无天666 阅读(243) 评论(0) 推荐(0)
摘要: package main /* 函数function Go 函数 不支持 嵌套、重载和默认参数。 但支持以下特性: 无需声明原型(C语言在使用函数之前需要声明函数的原型)、不定长度变参、多返回值、命名返回值参数、 匿名函数、闭包 定义函数使用关键字 func,且左大括号不能另起一行。 函数也可以作为一种类型使用 */ import ( "fmt" ) func ma... 阅读全文
posted @ 2017-12-20 15:50 无天666 阅读(295) 评论(0) 推荐(0)
摘要: package main /* map 类似其它语言中的哈希表或者字典,以key-value形式存储数据 Key必须是支持==或!=比较运算的类型,不可以是函数、map或slice, 这3中类型都不能实现== != 的运算,value的类型是任意的。 Map查找比线性搜索快很多,但比使用索引访问数据的类型慢100倍,可以使用slice或者数组的时候不要使用map. Map使用make()创建,... 阅读全文
posted @ 2017-12-20 11:44 无天666 阅读(361) 评论(0) 推荐(0)
上一页 1 ··· 53 54 55 56 57 58 59 60 61 ··· 167 下一页