go
文章平均质量分 81
coolwriter
这个作者很懒,什么都没留下…
展开
-
go 闭包
package main import ( "fmt" ) func adder() func(int) int { sum := 0 innerfunc := func(x int) int { sum += x return sum } return innerfunc } func main() { pos, neg :=...原创 2018-06-29 11:17:20 · 172 阅读 · 0 评论 -
go反射
反射规则 在计算机科学领域,反射是指一类应用,它们能够自描述和自控制。也就是说,这类应用通过采用某种机制来实现对自己行为的描述(self-representation)和监测(examination),并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 每个语言的反射模型都不同(同时许多语言根本不支持反射)。 Go语言实现了反射,所谓反射就是动态运行时的状态。 ...转载 2018-07-01 11:35:58 · 160 阅读 · 0 评论 -
go 判断语句
Go虽然保留了指针,但是与其他编程语言不通的是,在Go当中不支持指针运算以及“->”运算符,而是直接采用“.”选择符来操作指针目标对象的成员。 操作符“&”取变量地址,使用“*”通过指针间接访问目标对象 默认值是nil而非NULL package main import ( "fmt" ) func main() { a := 1 var p *...原创 2018-06-27 22:05:00 · 1659 阅读 · 0 评论 -
tcp socket客户端和服务器
1.Socket编程 以前使用Socket编程时,一般是如下步骤 建立socket,socket 绑定socket,bind 监听,listen 接受连接,accept 接受/发送,recv/send go tcp版真的很省事 服务端: 就是Listen、Accept、Read/Write 客户端 就是Dial、Read/Write 2.Server端 packa...原创 2018-06-28 17:25:30 · 202 阅读 · 0 评论 -
go 多线程
goroutine Runtime包中提供了几个与goroutine相关的函数。Gosched()让当前正在执行的goroutine放弃CPU执行权限。调度器安排其他正在等待的线程运行。 请看以下例子: package main import ( "runtime" "fmt" ) func main(){ go sayHello() go sayWorl...原创 2018-06-29 10:01:56 · 12167 阅读 · 0 评论 -
golang 语言问题
1. 下面代码能运行吗?为什么type Param map[string]interface{} type Show struct { Param } func main1() { s := new(Show) s.Param["RMB"] = 10000 }12345678910运行结果:panic: assignment to entry in nil map g...转载 2018-07-12 22:10:59 · 455 阅读 · 0 评论 -
Go的切片
Go的切片是一个高效而强大的处理数据序列的类型,相比来说我们使用数组的时候更少,因为数组一旦定义它的长度不能再改变,使用起来不够灵活。但任何事情都会有副作用,就像之前说过的Go的语法糖带来便利的同时也隐藏了一些坑。有时候是出乎意料的特性,有时候是性能的损失,稍不注意可能就会陷入其中,给你一种这语言有“严重”的缺陷的感觉,严重了甚至很可能让你放弃使用它,之前就看到早期国外有开发团队就出现过这种情况。...原创 2018-07-25 10:10:28 · 177 阅读 · 0 评论 -
goruntine
基本概念 进程:独立的栈空间,独立的堆空间,进程之间调度由os完成。 线程:独立的栈空间,共享堆空间,内核线程之间调度由os完成。 协程:独立的栈空间,共享堆空间,调度由用户自己控制,本质上有点类似于用户级线程,这些用户级线程的调度也是自己实现的。 同步调用 就是由调用者主动等待这个调用的结果。发出一个调用,在没有得到结果之前,该调用就不返回。一旦调用返回,就得到返回值了。 异步调用 调...转载 2018-07-25 10:43:35 · 603 阅读 · 0 评论