Go的reflect机制和reflect包

Go的reflect机制和reflect包 概述 虽然Go是静态语言,然而还是提供了reflect机制,并且定义了reflect包来辅助反射处理。在reflect包中,最重要的两个类型就是Type和Value,分别从类型、值的角度来描述一个Go对象。 Type类型是一个接口,这个接口实现了String() string方法。Value类型是一个结构,但是并未定义任何导出字段,同样定义了String() string方法。 使用如下语句来导入reflect包 import "reflect" 注意...阅读全文

2013-12-16 21:04 fighterlyt
阅读:38638 评论:0

GoLang获取struct的tag

GoLang获取struct的tag内容;beego的ORM中也通过tag来定义参数的。 获取tag的内容是利用反射包来实现的。示例代码能清楚的看懂! 1 package main 2 import ( 3 "fmt" 4 "reflect" // 这里引入reflect模块 5 ) 6 type User struct { 7 Name string "user name" //这引号里面的就是tag 8 Passwd string "user passsword" 9 } 10 func m...阅读全文

2015-03-12 16:59 chuanheng
阅读:36505 评论:0

也谈并发与并行

也谈并发与并行 六 23 bigwhite技术志 Concurrency, Go, Go1.5, Golang, Google, Gopher, goroutine, parallelism, RobPike, 并发, 并行, 线程, 编程语言, 调度 No Comments 在一般人的眼中,“并行”就是并行,即你干你的,我干我的,两个“并行”的执行过程可能是两条毫无瓜葛的平行线,也可能是有交叉,但瞬即分开的两条线。不 过在程序员的世界里,有关“并行”的概念却有两个单词:Concurrency和...阅读全文

阅读:6848 评论:0

Go 1.5的并发特性与案例

Go语言最有用的特性是将并发作为第一支持的语言,使用协程goroutine, 非常容易实现代码的并发,这使得Go成为网络类应用的重要选择,本文以银行转账为例,阐述了Go 1.5新版本中如何使用协程实现并发。该文还指出了在Go 1.5版本之间所有协程只是运行在单个进程,并不支持多核CPU并行计算,1.5以后提升到支持多核。 Golang Security and Concurrency 下面代码是一段协程的实现: func hello() { println("Hello!") ...阅读全文

阅读:6826 评论:0

Go程序调试、分析与优化

Go程序调试、分析与优化 八 25 bigwhite技术志 atomic, BradFitzpatrick, Channel, Concurrency, Darwin, debugging, Go, Golang, goroutine, gotools, Linux, Mutex, optimization, parallelism, Perl, pprof, Ubuntu, YAPC, 优化, 原子操作, 并发, 并行, 调试, 锁 No Comments Brad Fitzpatrick在Y...阅读全文

阅读:7364 评论:0

Golang在京东列表页实践总结

目前线上状态 基于搜索实现; 全量数据,搜索结果不理想; 接口响应时间长,影响了用户体验; 没法针对数据做二次优化; 转化率相对较低; 基于以上原因,需要做出改变,所以就需要对老进行重构,如下 重构版本 非全量数据,线下异步根据数据模型进行进行筛选部分最优数据; 要求时时过滤计算,接口相应时间要快,保证用户体验; 数据进行优化,提高转换率,提搞GMV; 为何选择golang golang语言强大的并发能力; 与C相媲美的性能,新版对cpu计算要求较高; 基于以上两点,所以选择了go...阅读全文

阅读:11160 评论:4

golang基础学习

刚找了个新工作,应公司的要求必须用go语言来开发服务器。特此将自己对于go语言的学习经历写出来,帮助那些正在golang学习路上挣扎的迷茫的小伙伴们。 本文只是讲解自己最基础的一个学习过程,从最基础的变量开始,到最后利用golang搭建一个简单的服务器项目的过程,肯定有不少的错误或瑕疵,千万别当做标准的文档去看,仅仅是自己的一个学习过程的总结。希望大家理解,也仅仅是自己对自己每周学习过程的一个总结,每周更新一次。带大家用代码学习golang,用开源项目学习整个项目的框架逻辑。抽象的东西最好用实例...阅读全文

2015-07-04 17:51 ice_201507
阅读:4902 评论:1

Go中的make和new

自:http://www.cnblogs.com/ghj1976/archive/2013/02/12/2910384.html 1、make用于内建类型(map、slice 和channel)的内存分配。new用于各种类型的内存分配。 2、new本质上说跟其它语言中的同名函数功能一样:new(T)分配了零值填充的T类型的内存空间,并且返回其地址,即一个*T类型的值。用Go的术语说,它返回了一个指针,指向新分配的类型T的零值。有一点非常重要:new返回指针。 3、make(T, args)与ne...阅读全文

阅读:1581 评论:1

golang中fmt vs log

真正的项目中一定要使用log或者封装更高层的自定义log,不要直接使用fmt,原因有2: (1)最重要的一点,log包是并发goroutine安全的,而fmt不是,这点特别重要,可以看如下的例子 func main() { log.Printf(" %s", "1.1.1.1002") log.Printf(" %s", "aaa") sigTerm := syscall.Signal(15) log.Println(reflect.TypeOf(sigTerm)) fmt.Println("H...阅读全文

2015-01-13 02:15 paladinosment
阅读:3748 评论:1

我为什么喜欢go语言

有一位好哥们曾极力推荐我学习go语言,一直没当回事,今日在博客上看到了这样一篇文章,与大家分享。 从2000年至今,也写了11年代码了,期间用过VB、Delphi、C#、C++、Ruby、Python,一直在寻找一门符合自己心意和理念的语言。我很在意写代码时的手感和执行的效率,所以在Go出现之前一直没有找到。在熟悉Go之后,我虽没有停下脚步,也去体验了D语言,但几乎立即就放弃了,它的设计还是太复杂。 就说说Go吧。它的好其实也就两个字——简洁! 看很多朋友的留言都觉得这些“少个括号、少个分号”之...阅读全文

2015-10-25 10:32 u012679583
阅读:2152 评论:2

神奇的go语言(聊天室的开发)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 这是一篇关于聊天室开发的博客,原来文章的地址来自于此。这篇文章非常具有代表性,对于代码中的函数部分内容,不想多说什么,只是对它的实现进行一些必要的讲解。关于代码,大家既可以在这里阅读,也可以跳转到那篇博客,继续阅读。package main import( "fmt" "os" "net" ) //////////////////////////////////////////////////...阅读全文

2014-07-21 23:10 feixiaoxing
阅读:1959 评论:0

Go语言TCP Socket编程

Golang的主要 设计目标之一就是面向大规模后端服务程序,网络通信这块是服务端 程序必不可少也是至关重要的一部分。在日常应用中,我们也可以看到Go中的net以及其subdirectories下的包均是“高频+刚需”,而TCP socket则是网络编程的主流,即便您没有直接使用到net中有关TCP Socket方面的接口,但net/http总是用到了吧,http底层依旧是用tcp socket实现的。 网络编程方面,我们最常用的就是tcp socket编程了,在posix标准出来后,socket...阅读全文

十一月 17, 2015 bigwhite
阅读:29968 评论:4

Go语言中使用MySql数据库

Go语言中使用MySql数据库 1、MySQL驱动 Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,常用的有如下几种: https://github.com/Go-SQL-Driver/MySQL 支持database/sql,全部采用go写。 https://github.com/ziutek/mymysql 支持database/sql,也支持自定义的接口,全部采用go写。 https://github.com/Phil...阅读全文

2015-12-06 21:08 songxingzhu
阅读:2296 评论:0

golang通过socket与java通讯

作为计算机专业的学生(虽然很水),直到今天还有二年级的师弟问我计算机专业学计算机网路基础究竟有什么作用?项目中是否只能用一门编程语言?……解释了半天,没能解释明白(原谅计算机专业读久了,口才真的变烂了),于是写下这篇文章。 本文主要是实现echo服务器/客户端,服务器采用golang编写,客户端采用java编写(别问我为什么不用C++,如果会早就用了),本文的目的是为了说明,现代编程中,网络是十分重要的,另外一个项目中,不仅仅只能用一门编程语言,由于本人也是入门,写的不好地方,望指正,谢谢。有不...阅读全文

2015-12-09 02:14 u013025612
阅读:3573 评论:2

实现一个go语言的简单爬虫来爬取CSDN博文(一)

前言 如何实现一个爬虫系统或则简单的小脚本?一般是定义一个入口页面,然后一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫的抓取队列中,然后进入到新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样。 golang由于其编译速度很快,而且对并发(goroutine)的天然支持,配合chan的协程处理,可以很好地实现一个稳定高效的爬虫系统. 用到的包 完全不借助第三方的框架,通过go sdk的标准库来实现一个爬虫应用,主要用到的包 net/http 标准库里内建了...阅读全文

2015-12-21 23:47 tyBaoErGe
阅读:14472 评论:1