
Go 语言
路之遥_其漫漫
这个作者很懒,什么都没留下…
展开
-
Go TCP网络程序编写
案例:client和server程序编写: 面向长连接的编程 http://files.cnblogs.com/files/yyx1-1/Go_TCP.7z博客:自定义TCP的数据包 二进制协议, 将发送的数据包按照二进制的格式进行组包发送, 采用二进制协议的好处在于, 可以进行跨语言 交互; 需要用到encoding/binary package; http://www.jianshu.c原创 2017-08-01 12:54:17 · 496 阅读 · 0 评论 -
Golang gc演进
GC优化GC 的方向:尽量不要大量创建对象, 不要频繁创建对象. 这个道理在所有带gc的编程语言都通用;提高对象重用和避免不必要的对象创建;解决Go语言程序稳定性的问题:内存泄漏(Go语言也提供自我管理内存的方式), 使用memprof来定位;提高程序的运行性能, 使用cpuprof 来定位问题;Go gc的信息:go的gc是固定每两分钟执行一次,每次执行都是暂停整个程序的;gc 执行时原创 2017-08-01 11:55:37 · 976 阅读 · 0 评论 -
panic: reflect: reflect.Value.SetUint using value obtained using unexported field(go语言)
go语言中在用binary.Read(),把二进制映射为结构体时,如果出现panic: reflect: reflect.Value.SetUint using value obtained using unexported field类似的错误,是要映射的结构体成员没有大写造成的,小写是私有,大写公有的才可以被访问到原创 2017-08-01 10:40:35 · 1267 阅读 · 0 评论 -
Go语言学习笔记
Go 编程查看标准包函数方法: ctrl + . + h 或者: ctrl + . + g基础知识运行方式() Golang提供了go run“解释”执行和go build编译执行两种运行方式,所谓的“解释”执行其实也是编译出了可执行文件后才执行的。 Package管理() Golang约定:我们可以用./或../相对路径来引自己的package;如果不是相对路径,那么go会去$GOPATH/原创 2017-06-27 14:38:22 · 898 阅读 · 0 评论 -
Go flag包示例
Go 命令行解析示例func test_flag() { ListPort := flag.String("list", "1025", "list port") Server := flag.String("server", "192.168.1.134:9000", "server address") MonitorServer := flag.String("monit原创 2017-06-27 15:34:52 · 1181 阅读 · 0 评论 -
Go panic, defer, recover 的异常处理
本内容为部分转载 : http://www.cnblogs.com/ghj1976/archive/2013/02/11/2910114.html1.go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。在Go语言中,使用多值返回来返回错误。不要用异常代替错误,更不要用来控制流程。在极个别的情况下,也就是说原创 2017-06-26 11:52:59 · 850 阅读 · 0 评论 -
Go 普通LOG输出
因为Go 语言中没有自带的宏, 来表示行号和文件, 需要从方法中去获取,麻烦.所以封装了一个函数,用于输出平时程序的打印日志package mainimport ( "fmt" "log" "net" "runtime" "strconv")func AddLog(msg string) string { _, _, line, ok := ru原创 2017-03-30 21:34:10 · 692 阅读 · 1 评论 -
Golang Data race 检测
golang中的 go 关键字可以很方便的开启一个协程, 在函数中又非常容易隐藏 go这个关键字; 所以当程序庞大时, 有时会不知道一个变量被几个协程所引用, 是否会引起多个协程竞争。golang在1.1之后引入了竞争检测机制, 可以使用 go run -race 或者 go build -race来进行静态检测。 其在内部的实现大概就是: 开启多个协程执行同一个命令, 并且记录下每个变量...原创 2017-07-12 11:08:07 · 2988 阅读 · 0 评论 -
GoLang 类型转换和类型断言
Go语言中的强制类型转换 与 C语言的区别是: char b = 9; int a = (int)b; _注意:此处括号中为将强制转换的类型_ ; var Byte b = 9 var uint a = int(b) _注意:此处括号中为 将要转换的值_ Go 的类型断言和switch判断, 两种方式: Comma-ok断言的语法是:value, ok := element.(T)。el原创 2017-07-11 16:58:40 · 952 阅读 · 0 评论 -
Go语言包的注意事项与目录管理
Go语言包的注意事项Go 包与目录管理 http://studygolang.com/articles/2233原创 2017-03-21 23:32:19 · 415 阅读 · 0 评论 -
Language Mechanics On stacks And Pointers--golang
前言本节专注于:栈和指针。介绍当使用指针不正确时,可能会产生bug或性能问题。特别是当写多线程软件时。所以很多试图从开发者的角度去隐藏指针。然而,如果你想使用go去编程,你没有任何方式可以去避免它。对指针没有很深的理解,你将很难去写出干净,简洁,高效的代码。框架界限引用https://www.goinggo.net/2017/05/language-mechanics-on-stacks-翻译 2017-09-22 10:44:23 · 430 阅读 · 0 评论