Go语言中文网 为您找到相关结果 184

学习C/C++的简单方法

如何学习C++呢。C和C++是很多专业的必修课,尤其对计算机专业来说,更是重中之重。C++语言是早期发展的高级语言,具备执行速度快,语法优美等特点。是底层高效率系统的首选开发语言。今天就和大家分享一下怎么学好C/C++语言吧 ^_^ 怎么学好C++、C语言呢 工具/原料 C/C++学习资料 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190117170128574.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlbnBlbmcyMzE=,size_16,color_FFFFFF,t_70)...阅读全文

博文 2019-01-17 17:48:56 wenpeng231

golang中的匿名组合

确切地说,Go语言也提供了继承,但是采用了组合的文法,所以我们将其称为匿名组合:type Base struct { Name string}func (base *Base) Foo() {...}func (base *Base) Bar() {...}type Foo struct { Base ...}func (foo *Foo) Bar() { foo.Base.Bar() ...}以上代码定义了一个Base类(实现了Foo()和Bar()两个成员方法),然后定义了一个Foo类,该类从Base类“继承”并改写了Bar()方法(该方法实现时先调用了基类的Bar()方法)。在“派生类”Foo没有写“基类”Base的成员方法时,相应的方法就被“继承”,例如在上面的例子中,调用foo.F...阅读全文

博文 2017-02-10 10:20:43 yeleven

Go反射 实现任意类型属性拷贝

开发中会频繁的使用各种对象,在Java中称为Javabean,在Go中用结构体。使用ORM框架时,经常会用实体类来映射数据表,但实际上很少会直接使用映射数据表的实体类对象在各层传输,更多的会使用其他对象(如DTO,VO等),对读出的实体类对象的属性进行过滤或增加。 用Java的朋友都知道,有个便利的工具叫BeanUtils,调用一下copy()方法即可去除大量的setter操作。Go自带很多package,但并没有任意类型的拷贝方法,内置的copy()也只能拷贝切片。 不过Go自带反射包,利用反射,我们可以手动实现一个任意类型属性拷贝的函数或方法。 实现起来也很简单,喜欢琢磨的朋友可以直接阅读反射的文档自己实现。golang.org/pkg/reflect… Overview 以下摘自文档 ...阅读全文

博文 2019-12-03 20:34:21 愚辛

golang struct聚合大量接口时,初始化方式不一致?

日前,因为一个业务需要,在struct聚合上百万个接口(因为没有基类、子类,只有通过接口来代替基类作用)的时候,出现了非常意外的编译提示。初步判定是接口数量有限制导致。 ```code 调试环境:go1.6.2 darwin/amd64 代码如下: ``` ```code package main import ( "fmt" ) const arraynum = 1 << 20 //①,数组的大小定义 type I interface { GetXY() (x, y int16) } type I_impl struct { x, y int16 } func (this *I_impl) GetXY() (x, y int16) {...阅读全文

Golang使用感受

Golang使用感受 说白了一门语言对你造成重大影响的就四个东西:性能,行数,易理解度,坑的多寡深浅(包括网上的相关资料和第三方类库)。 性能方面 Go 的性能基本上只输 C 家族,最坏情况也就慢几倍(不像某些流行语言慢几十上百倍),就算用来实现对性能要求苛刻的算法也算不上浪费 CPU。但如果看广义的性能,把并发算进去,还是比较爽的。像 Ruby / Python 这类被 GIL 束缚手脚的语言就不说了,而相比那些直接操作系统级线程/进程的语言来说,速度优势就很明显。当然,很多语言也可以包一个轻量级线程的实现,但问题就出在这里,他们官方没做这个事情,这种命根子需求使用第三方库会带来很多隐患。 行数方面 这是 Go 的小劣势,总体表现力不如 Ruby / Python / Scala / 各种...阅读全文

博文 2016-08-10 10:00:04 yueguanyun

go第一天

一.语言的主要特性与发展的环境和影响因素 这个文章作者写的很好,从影响go发展的早期语言,为什么需要一个新语言,go语言的目标,go语言的设计思想,用途,特性等,都做了很好的讲解. 学习总结: 1.go也属于c系语言,但是又汲取了其它语言的精粹部分(有点王婆卖瓜的味道),比如包和声明方面(Pascal、Modula 和 Oberon),并发设计(通信序列进程 Communicating Squential Processes,Limbo 和 Newsqueak,Erlang),go有着类c的语法,但又更为简洁,还有一些动态语言的特性.PS:它是开源的 2.Go 语言:快速编译,高效执行,易于开发, 3.Go 语言的主要目标是将静态语言的安全性和高效性与动态语言的易开发性进行有机结合,Go 语...阅读全文

博文 2014-12-02 17:00:01 threeyax

Go语言基础概念

Go语言基础概念 2014年2月17日 go语言学习 个人论述:关于程序语言,每个程序员都有不同的看法和观点,有人觉得C++语言好用,够快;有人觉得C语言好用够强大,又有人觉得Java好用,够简洁。目前编程语言数不胜数了,目前排在前面的还是C、C++、Java,这三种语言使用人数最多的,历史也是最悠久的。它们都是经过无数程序员千锤百炼而慢慢成熟起来的,现在很难评判说到底哪个语言好用或者开发出来的程序功能强大,讨论这些是没有意义的,一个语言到底能做什么东西全靠程序员个人的功力和对语言的熟悉程度,它毕竟是一个工具,工具是我们开发程序的利器,只有万般打磨才能变得锋利无比。自然使用过很多种语言的大牛来说,自然有自己喜爱的语言,因为他可能更明白每一种语言的特性,哪一种能让自己开发变得轻松自在。所以对于...阅读全文

博文 2014-10-09 16:00:00 wwj_748

为什么我们要使用Go语言以及如何使用它的

本文选自:外刊IT评论网 我们SoundCloud是一个使用多种编程语言的公司,虽然我们的技术架构最外层一直使用的是Ruby on Rails,但是在后端,各种各样的编程语言都有涉及。在这里我想多讲一下为什么要使用和如何使用Go这样一种开源的、刚刚发布其1.0版本的编程语言的。 在我们的公司里,所有的技术人员都是全能选手,而不是专才,这是根植于公司基因文化里的特征。我们希望每个人都能对公司的基础架构中每一部分都至少有相当的了解。更进一步,我们鼓励技术人员在个开发团队间调换,甚至组成新的团队,使成员跟各团队的冲突和摩擦尽量减少。在这样一种代码共产共有的环境中,非常需要一种表达性强,效率高的语言来降低实施的困难,Go语言证明了它是一种非常适合的语言。 GoogleGolanguage 我们已经有...阅读全文

博文 2014-10-19 14:00:00 liuzif

go mod有了它,再也不用担心运行缺少类库了

参考链接:https://blog.csdn.net/weixin_39003229/article/details/97638573 什么是go.mod? Go.mod是Golang1.11版本新引入的官方包管理工具用于解决之前没有地方记录依赖包具体版本的问题,方便依赖包的管理。 Go.mod其实就是一个Modules,关于Modules的官方定义为: Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性。Modules替换旧的基于GOPATH的方法,来指定使用哪些源文件。 Modules和传统的GOPATH不同,不需要包含例如src,bin这样的子目录,一个源代码目录甚至是空目录都可以作为Modules,只要...阅读全文

React前端开发入门与实战案例

课程介绍 本课程主要讲解React的基础使用技巧及实战案例。 React 是一个用于构建用户界面的 JavaScript 库,主要用于构建UI,很多人认为 React 是 MVC 中的 V(视图)。React 起源于 Facebook 的内部项目,用来架设 Instagram 的网站,并于 2013 年 5 月开源。由于 React 拥有较高的性能,代码逻辑非常简单,越来越多的开发者开始关注和使用它。 讲师介绍: 何一鸣,花名承玉,2010年硕士毕业后加入淘宝,期间负责前端框架 KISSY 以及一些基础类库的开发和维护,2014 年底转入蚂蚁金服终端技术组,构建基于 React 的全新前端架构: 包括服务于中后台的 antd,服务于无线业务的 antd-mobile,...阅读全文

产品环境中 Go 语言的最佳实践

http://www.oschina.net/translate/go-in-production 在SoundCloud,我们为客户构建了产品的API。或者说,我们主要的网站、手机客户端和手机应用是该API的第一批客户。该API背后是一个领域性的服务:SoundCloud基本上以面向服务体系结构的形式运作。 我们也是通晓多种语言的组织,因为我们使用了很多语言。并且这些服务(和基础设施支持)的许多部分是使用Golang开发的。事实上,我们都是早期Golang的使用者:目前,我们已在产品中使用Golang有两年半的时间。相关项目包括: Bazooka,我们内部服务平台;产品思想非常类似于Keroku或Flynn。 我们外围的传输层使用通用的nginx, HAProxy等等,但是它们要和Gola...阅读全文

博文 2015-01-29 15:00:01 maijian

初学者关于Golang 的一些问题

刚开始学习Golang,有一些基础性的问题想请教一下: 1.Golang 里有没有实现了io.Writer接口,类似于Java中的StringWriter 这样能够用于在 fmt.Fprintf()中将字符进行输入到writer中,然后获取具体输出信息的类库 2.之前尝试使用map,但是发现,假如类型为 map[string]func()这种带着value类型为func()的map,是会报错的,请问有什么别的方法能够实现string与func的键值对组合吗...阅读全文

主题 2015-05-03 03:42:55 kifile

程序员过关斩将--你的面向接口编程一定对吗?

妹子开始抱怨起来 业务背景 妹子的游戏是个对战类的游戏,其中有一个玩家的概念,玩家可以攻击,这个业务正是妹子开始挠头的起点 第一次需求 产品经理:玩家有很多属性,例如:身高,性别 blalalala ,玩家可以攻击其他玩家。 YY妹子写程序也是很利索,一天就把程序搞定了,而且还抽象出一个palyer的基类出来,堪称高级程序员必备技能。 //玩家的基础抽象类 abstract class Player { public string Name { get; set; } //. //. //. //玩家的攻击 public abstract void Attack(); } //真实玩家 class PersonPlayer : Player { public override void At...阅读全文

这一堆初中生写的类库、框架,让一群中年程序员坐不住了!

前不久在V2EX上看到一个帖子,主题是「一堆初中生写的类库、框架」,原本猿妹以为只是个标题党不以为意。点进去该博主的博客主页发现,博主确实是一名初中生,而且他的GitHub主页,确实已经创建了多个项目,如下图: 虽然Star数量都不多,但是项目的技术水平却不低,下面就介绍几个项目给你们:1、XPHP 根据他在V2EX上的介绍:这个项目,在他小学的时候就已经开发了第一个版本,那时还不知道 Semantic Version,于是版本号是版本0,这个框架旨在像 Laravel 一样优雅,与 CI 一样高性能。它把整个 Handler 层单独出来了,所以整合 Swoole、Workerman 之类的十分方便。后期有原生支持多线程( pthreads )的打算。提供完整的工具集,包括 CLI 等等。C...阅读全文

博文 2018-09-15 23:34:39 一墨编程学习

依赖注入不是Java的专利,Golang也有

笔者在使用Golang的时候就发现构建系统依赖树非常繁琐,New了很多对象,又手工代码将它们拼接起来,写了一堆非常冗繁的代码。然后就开始想,要是Golang像Java一样有一个好用的依赖注入框架就好啦。 果不其然,Golang还真有,居然还是大厂facebook团队开源的。 阅读全文

博文 2018-01-11 09:33:28 钱文品

go语言学习-接口(interface)

在Go语言出现之前,接口主要作为不同组件之间的契约存在。 1、侵入式接口(go语言之前的几乎所有面向对象语言的接口定义方式): 实现类需要明确的说明自己实现了某个接口(直接指定了接口)。如: interface IFoo { void Bar(); } class Foo implements IFoo { // Java文法 // ... } class Foo : public IFoo { // C++文法 // ... } 2、非侵入式接口: 接口定义的时候,不需要指明和某个具体累的关系;同时定义类的时候,也不需要知道和那个接口相联系。 优点: (1) Go语言的标准库,再也不需要绘制类库的继承树图,你只需要知道这个类实现了哪些方法,每个方法是啥含义就足够了; (2) 实现类的时候,...阅读全文

博文 2016-03-25 12:00:04 kuoshuang

2018-12-22 晚间日记

天气:小雨 任务清单 习惯养成类:日更800+字 && writingTime >=1h 习惯养成类:单词 30个,复习优先,你的目的是为了记住单词,而不是看到更多的单词。 看TED,或者其他的英文节目1h 周目标·完成进度 golang 1K 众病之王---癌症治疗的认知升级(总结2000字+) 梁宁的产品思维30讲(写总结2000字+) 学有所得 思考快与慢 中有一个例子讲代表性偏误。 史蒂夫是从一个有代表性的样本库中被随机挑选出来的: 邻居如此描述这个孩子:“史蒂夫非常腼腆,少言寡语,很乐于助人,却对他人或者这个现实世界没有兴趣。他谦恭有礼,做事井井有条,中规中矩,关注细节。”请问史蒂夫更可能从事哪种职业,图书管理员还是农民? 很显然,史蒂夫的个性和典型的图书管理员有着惊人的相似,但这...阅读全文

博文 2018-12-22 23:34:48 郭青耀

SEO是件贼有意思的事情 golang入坑系列

这两天迷上了SEO。真心看不起百度的竞价排名,但作为一个商业网站,赚钱是一件无可厚非的事情。只做活雷锋,没有大金主是做不长的。做完功课后,发现百度和google的SEO策略又不相同,几乎是无法通用。百度目前占据着国内搜索市场70%的市场份额,虽然不齿百度的龌龊之举,但也只能沉下心来好好琢磨琢磨百度的SEO策略。以前没有接触过SEO,不懂这里面的水。这两天着了迷想好好研究研究SEO,才发现原来内容是否原创,网页类型(静态/动态),关键字覆盖率,robots是否满足要求,外链质量,网站结构都会影响到最终的排名。当然这里说的都是明面上的技术操作,没提那些个灰色产业。既然称之为灰色产业了,没有老司机带着,也很难明白是怎么运作的。问了一些买过SEO优化的朋友得知,有的SEO优化立竿见影,基本一周后就能...阅读全文

博文 2017-12-11 21:00:01 vikings-blog

GO语言的简介及Ubuntu下的安装和编译

简介 GO语言是Google基于BSD发布的开源系统级编程语言,目标是融合Python的开发效率和C的运行时效率于一体。该项目的网址是http://golang.org。目前只支持Linux,freebsd和Mac OS X平台的amd64和386架构。 安装 有一个快速的编译器安装说明,见http://golang.org/doc/install.html。我在虚拟机中的Ubuntu9.10下安装过程如下: 1.设置环境变量 一共需要设置4个变量 export GOROOT=$HOME/go export GOARCH=386 export GOOS=linux export GOBIN=$HOME/bin 如果你的平台是AMD64,请将GOARCH替换成amd64;另外GOBIN是可选的...阅读全文

博文 2014-10-12 01:00:16 LunnyXiao

google的GO语言环境安装

首先打开install Go页面:http://golang.org/doc/install.html 按着向导一步一步来安装。 本人环境:ubuntu9.10,acer Aspire4710 32位机器 下文"#"表示说明文字,其余为在终端中的命令或者文件操作 1.Environment variables(环境变量设置) (1)cd (2)mkdir go (3)mkdir bin (4)vi .bashrc (5)#在文件最后添加如下内容(根据机器的不同而使用不同的GOOS和GOARCH的设置,一般都为linux和386,大部份还是使用这两样的多): export GOROOT=$HOME/go export GOOS=linux export GOARCH=386 export GO...阅读全文

博文 2014-10-04 19:26:37 haiyupeter

go语言实现令牌桶算法

package main import ( "fmt" "time" ) var ( lastRequestTime int64 = time.Now().Unix() tokenSurplus int64 = 0 qps int64 = 5 ) func getMin(a, b int64) int64 { if a > b { return b } return a } func getToken() bool { now := time.Now().Unix() temp := (now-lastRequestTime)*qps + tokenSurplus tokenNow := getMin(temp, qps) if tokenNow > 0 { lastRequestTime ...阅读全文

博文 2020-04-10 13:32:41 xxfaxy

Go语言编程(十三)之匿名组合

确切的说,Go语言也提供了继承,但是采用了组合的文法,所以我们将其称为匿名组合: type Base struct { Name string } func (base *Base) Foo() {...} func (base *Base) Bar() {...} type Foo struct { Base ... } func (foo *Foo) Bar() { foo.Base.Bar() ... } 以上代码定义了一个Base类(实现了Foo()和Bar()两个成员方法),然后定义了一个Foo类,该类从Base类“继承”并改写了Bar()方法(该方法实现时先调用了基类的Bar()方法)。 在“派生类”Foo没有改写“基类”Base的成员方法时,相应的方法就被“继承”,例如上面的例...阅读全文

博文 2016-08-11 18:00:01 JoeySheng

golang-设计模式-简单工厂模式

需求:使用任何一种您熟悉的面向对象语言写一个计算器(加减乘除) 分析:有四个方法,分别是加法、减法、乘法、除法。要达到最大的解耦合,就必须将计算逻辑与输出分离。四个方法要相对独立,不互相影响。故此设计了这个UML图。 图片上传失败,请问各位大侠,我要怎么操作才能将UML截图放在这里? 接口类:calculatorInterface.go ```javascript package simple_factory type CalculateEngine interface { Calculate(num1, num2 float64) float64 } ``` 实现类:calculatorRealization.go ```javascript...阅读全文

GO 语言五步让你成为高手

这里是GO程序员的五个进化阶段: 第一个阶段(菜逼): 刚刚学习了这门语言。 已经通过一些教程或者培训班了解基本的语法,可以写短的代码片段。 第二个阶段 (探索者): 可以写一个完整的程序,但不懂一些更高级的语言特征,比如“channels”。还没有使用GO写一个大项目。 第三个阶段(大手): 你能熟练的使用Go, 能够用GO去解决,生产环境中一个具体和完整的问题。已经形成了一套自己的惯用法和常用代码库。在你的编码方案中Go是一个非常好用的工具。 第四阶段 (大神): 绝逼清楚Go语言的设计选择和背后的动机。能理解的简洁和可组合性哲学。 布道师: 积极地与他人分享关于Go语言知识和你对Go语言的理解。在各种合适的场所发出自己的声音, 参与邮件列表、建立QQ群、做专题报告。成为一个布道者不见得...阅读全文

博文 2016-08-08 15:00:01 yueguanyun

PHP与Golang如何通信?

最近遇到的一个场景:php项目中需要使用一个第三方的功能(结巴分词),而github上面恰好有一个用Golang写好的类库。那么问题就来了,要如何实现不同语言之间的通信呢? 常规的方案: 用Golang写一个http/TCP服务,php通过http/TCP与Golang通信 将Golang经过较多封装,做为php扩展。 PHP通过系统命令,调取Golang的可执行文件 存在的问题: http请求,网络I/O将会消耗大量时间 需要封装大量代码 PHP每调取一次Golang程序,就需要一次初始化,时间消耗很多 优化目标: Golang程序只初始化一次(因为初始化很耗时) 所有请求不需要走网络 尽量不大量修改代码 解决方案: 简单的Golang封装,将第三方类库编译生成为一个可执行文件 PHP与G...阅读全文

博文 2017-02-10 14:33:54 Dorm_Script

golang(2):beego 环境搭建

本文的原文连接是: http://blog.csdn.net/freewebsys/article/details/46695513 转载请一定注明出处。 1,关于beego beego是一个用Go开发的应用框架,思路来自于tornado,路由设计来源于sinatra,支持例如以下特性 MVC,REST,智能路由,日志调试,配置管理,模板自己主动渲染,layout设计 中间件插入逻辑,方便的JSON/XML服务 官网 http://beego.me 站点非常花哨呢。 2。头疼的gopath Go从1.1版本号開始必须设置这个变量,并且不能和Go的安装文件夹一样,这个文件夹用来存放Go源代码,Go的可执行文件,以及对应的编译之后的包文件。所以这个文件夹以下有三个子文件夹:src、bin、pkg...阅读全文

博文 2016-01-17 03:00:01 blfshiye

Alpha Go、Master为什么会下围棋

简单的说Alpha Go、Master就是一个函数y = f(x),x是当前棋子位置,y是x的应对棋子落位,也就是说下一步棋的位置,由于棋类的对抗性,显然y是对x最不利的一步走法。 假定有N个棋谱,每个棋谱有K步棋( 1<= k <361),当输入第1个棋谱的第一步棋时,使用y=f(x)计算,y就是Alpha Go、Master计算出来的第2步棋的落子位置,由于函数f没有学习好全部棋谱,所以y不是正确的走法,与棋谱中第2步棋比较有偏差,学习的目的就是让这个偏差最小趋近于零。Alpha Go、Master使用了深度学习算法不断训练这个函数f,当训练完成后对于每步棋都能得到较好的下法...阅读全文

博文 2017-01-06 02:00:01 量子世界的我

[golang] pretty print json并不受欢迎?

golang相比c++/java,崇尚简单,不附加没什么吊用的函数或类库,比如下面的这个函数就是简单的转成json。在社区里有人不推荐封装成函数使用,因为违背了golang的语言风格,“这么简单的两行代码,何必封装成包或函数使用呢?” 但是,其实挺好用,你怎么看呢? // Only for normal logging purpose, 4 space indent func PrettifyJson(i interface{}, indent bool) string { var str []byte if indent { str, _ = json.MarshalIndent(i, "", " ") } else { str, _ = json.Marshal(i) } return ...阅读全文

博文 2019-07-26 20:32:41 liuzoxan

学习编程的25个“坑”,你踩到了吗?

学习编程的过程中可能会遇到“25”个“坑”,不仅初学者可能中招,专业人士有时也难以逃脱,我自己也毫不例外。0. 忽视了编程终究是以人为本的。是的,机器的确会执行你的代码,但编程是为人们解决问题的,将他们的需求转换为由其他人(或你自己线下)读取,维护和修改的代码。1. 未能花充足的时间练习编程。 根据工作或日程安排,你可能会花费大量时间在与编程相关的任务上,但实际上这些并非编程本身。2. 停留在你正在学习的某个技术的表面。 沾沾自喜于自己掌握了足够完成任务的基础知识,对技术的了解却只流于表面,未有触及核心内容。3. 在编程学习中挑挑拣拣,无法持之以恒。一开始学习Rails,半道儿你发现Phoenix也不错,哦,学点JavaScript吧,这样就能用Node.js 了......从TJ转到Go然...阅读全文

博文 2018-10-25 18:34:40 西安北大青鸟官微

《Go 同步和并发设计模式》培训会后整理

今天参加《Go 同步和并发设计模式》主题培训,虽然早上下雨,但是大家一般还是都在9点左右赶到现场。本次分享时间很充沛,晁老师讲的也很细致,4点就结束了高于预期啊呵呵,全程听下讲座来收获还是很多的,下面整理一下今天感觉重点的内容。golang中使用channel的使用率占30%,但错误率缺高于50%错误原因大多是使用channel不适当造成的。读写锁RWMutex、Mutex不支持方法重入,想要实现重入可以使用黑科技goid 或者用 token使用Cond方法进行同步操作容易出错,推荐使用简单易用的sync.WaitGroup推荐使用go build race 进行锁竞争性检测,go vet 静态代码检测是否存锁值拷贝(因为拷贝锁值也会拷贝锁的状态信息,所以锁尽量使用指针来创建)。sync.P...阅读全文

博文 2019-05-26 23:06:44 牛儿吃草仗剑天涯

Excelize 发布 2.1.0 版本, Go 语言 Excel 文档基础库

Excelize 是 Go 语言编写的用于操作 Office Excel 文档类库,基于 ECMA-376 Office Open XML 标准。可以使用它来读取、写入由 Microsoft Excel™ 2007 及以上版本创建的 XLSX 文档。相比较其他的开源类库,Excelize 支持写入原本带有图片(表)、透视表和切片器等复杂样式的文档,还支持向 Excel 文档中插入图片与图表,并且在保存后不会丢失文档原有样式,可以应用于各类报表系统中。入选 2018 开源中国码云 Gitee 最有价值开源项目 GVP,目前已成为 Go 语言最受欢迎的 Excel 文档基础库。 开源代码 GitHub: github.com/xuri/excelizeGitee: gitee.com/xurim...阅读全文

博文 2020-02-10 10:32:41 续日

开源一个顺手的golang web开发轮子fastgo

FastGO 框架 简介 一个简单实用的go http框架, 支持命令行自定义cmd操作.基于gin web框架,gorm db操作,用起来比较顺手的轮子。 特性 支持access 与 panic recovery中间件,内含完整的日志记录。 基于logrus封装有log类库, 日志等级分级与自动切割,支持自定义日志保存和分割周期。 支持秒级cron定时任务配置,内含demo。 基于gorm,框架内含db初始化工具。 基于toml配置文件,含有完整解析类库 内含http请求工具类库。 使用go mod包管理工具,不依赖GOPATH的设置 内含Dockerfile与Makefile支持一键编译docker镜像,内涵docker-compose.yml示例支持一键容器运行 基本实用 #基于命令行...阅读全文

博文 2020-03-21 04:32:45 Ucan先生

Golang解决XORM的时区问题

如果你升级使用了较为新版xorm(如v0.6.3)和go-sql-driver(如v1.3)的go类库,那么你就可能会遇到时区问题。 如 time.Parse("2006-01-02 15:04:05" ,"2018-01-15 12:11:12") // 2018-01-15T12:11:12+00:00 写入是数据库时候就会被改变为2018-01-15T20:11:12+00:00。 上述的就是时区问题,因为我们使用的是东8时区,默认会被设置为0时区,解决方案很简单,只需要在main函数中或者main包中初始化时区: time.LoadLocation("Asia/Shanghai") 数据库配置为 root:root@tcp(127.0.0.1:3306)/test?charset=u...阅读全文

博文 2018-01-16 11:33:04 梦朝思夕

再测Golang的JSON库

写项目一直需要进行序列化,听到了,也看到了很多同学老师对各个golang的json库进行测评。那本人为什么还要继续进行这一次测评呢? 因为实践过的知识最有说服力,也是属于自己的,我也希望看到本博文的同学老师可以修改和执行测评的代码执行一遍,我相信会有不一定的体会。 本次测评我选择了类库有: 类库 序号类库地址备注 1encoding/jsonGolan 2easyjsongithub.com/mailru/easyjson 3ffjsongithub.com/mailru/easyjson 4iterator/jsongithub.com/json-iterator/go 主要是针对上述的类型进行,本人采用了对不同的类库使用不同的结构体(仅仅是结构体名称不同,字段顺序和类型一样)。 环境 环...阅读全文

博文 2018-02-09 13:33:04 梦朝思夕

Go语言学习(十五)面向对象编程-接口

1.其他语言的接口 Go语言的接口并不是其他语言(C++、Java、C#等)中所提供的接口概念。 在Go语言出现之前,接口主要作为不同组件之间的契约存在。对契约的实现是强制的,你 必须声明你的确实现了该接口。为了实现一个接口,你需要从该接口继承: interface IFoo { void Bar(); } class Foo implements IFoo { // Java语法 // ... } 即使另外有一个接口IFoo2实现了与IFoo有完全一样的接口方法甚至名字也叫IFoo只不过位 于不同的名字空间(包名)下,编译器也会认为上面的类Foo只实现了IFoo而没有实现IFoo2接口。 这类接口我们称为侵入式接口。“侵入式”的主要表现在于实现类需要明确声明自己实现了 某个接口。这种强制性...阅读全文

博文 2016-06-15 14:00:00 mChenys

Go的Hello world

挺简单的,是在windows7 64bit 上用sublime text3开发的,之前也用过eclipse来写go,但是感觉提示方面没有sublime做得好! 代码如下,配有注释: package main //包名是"main" import ( //导入类库,类似于C中的include "fmt" ) //函数名为main的函数类似于java中的public static void main(String[] args){} //这个函数是程序开始执行的地方 func main() { //函数(这个函数不需要参数,也不返回任何值),函数名是main fmt.Println("Hello, World 你好!") //将引号部分输出到控制台,类似于 //C的println() ...阅读全文

博文 2015-11-13 20:00:01 汉斯-冯-拉特

一个快速上手、轻量级 Golang 公共类库 (golang_common)

功能定位配置 Golang 基础服务(mysql、redis、http.client、log)比较繁琐,如果想 快速接入 基础服务可以使用本类库。没有多余复杂的功能,方便你拓展其他功能。你可以 import 引用使用,也可以拷贝代码到自己项目中使用。项目地址:https://github.com/e421083458/golang_common功能支持多套配置文件设置,比如:dev、prod,以及设置自定义配置文件。支持mysql、redis多套数据源配置,以及查询日志。支持日志文件、命令行输出,以及6种错误级别设置和自动切分滚动日志功能。安装及使用需要确保已经安装了 Go 1.8+,然后执行以下命令go get -v github.com/e421083458/golang_common ...阅读全文

博文 2019-05-19 21:30:21 e421083458

GO 调用 DLL 类库

最近一个项目需要用到Go调用C++的DLL类库 这里记录一下坑 DLL 原型 GetDllVersion 函数原型: unsigned int GetDllVersion(void); 获取dll版本信息 返回值:DLL版本信息((unsigned int),高字节为主版本信息,低字节为子版本信息 ===================================================================== SetQianNiuPath 函数原型: int SetQianNiuPath(const char * Path, unsigned int PathLen); 设置千牛安装路径(DLL不保存路径) 参数: Path,千牛安装路径(最长不要超过255个字符)...阅读全文

博文 2019-08-26 14:02:40 MiaoWoo

Golang解决XORM的时区问题

如果你升级使用了较为新版`xorm`(如v0.6.3)和`go-sql-driver`(如v1.3)的go类库,那么你就可能会遇到时区问题。 如 ```go time.Parse("2006-01-02 15:04:05" ,"2018-01-15 12:11:12") // 2018-01-15T12:11:12+00:00 ``` 写入是数据库时候就会被改变为`2018-01-15T20:11:12+00:00`。 上述的就是时区问题,因为我们使用的是`东8时区`,默认会被设置为`0时区`,解决方案很简单,只需要在main函数中或者main包中初始化时区: ```go time.LoadLocation("Asia/Shanghai") ``` 数据库配置为 ``` root:root@...阅读全文

博文 2018-01-16 11:50:57 qiangmzsx

设计模式(Design Pattern)是一套被反复使用、多数人知晓的、经过分类的、代码设计经验的总结。

使用设计模式的目的:为了代码可重用性、让代码更容易被他人理解、保证代码可靠性。 设计模式使代码编写真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。​设计模式的类型共有 23 种设计模式。这些模式可以分为三大类:创建型模式(Creational Patterns)- 这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活。工厂模式(Factory Pattern)抽象工厂模式(Abstract Factory Pattern)单例模式(Singleton Pattern)建造者模式(Builder Pattern)原型模式(Prototype Pattern)对象池模式 *(P...阅读全文

博文 2019-07-26 16:04:34 wyygxly

2018-12-21晚间日记

天气:小雨 任务清单 验证go-swaager 使用cookie 转发 编写新用户系统的yaml 不同域名使用swagger 进行 cookie传递 习惯养成类:日更800+字 && writingTime >=1h 习惯养成类:单词 30个,复习优先,你的目的是为了记住单词,而不是看到更多的单词。 周目标·完成进度 golang 1K 众病之王---癌症治疗的认知升级(总结2000字+) 梁宁的产品思维30讲(写总结2000字+) 学有所得 烟草的发现: 今天听吴伯凡老师的认知方法论,里面写到烟草产生与美洲人在丛林中,燃烧烟草可以驱蚊,为了使烟草不至于熄灭,会经常吸一吸,不断的反复,就让人的大脑产生了对烟草的依赖性和某种快感,后来即便他们不在丛林中的时候,也会对这种气味产生一种不可遏制的欲...阅读全文

博文 2018-12-21 23:34:42 郭青耀

Golang之命令行操作(第三章)

参考 简书说明系列 https://www.jianshu.com/c/bef4e958ecd6 视频教学系列 https://www.imooc.com/learn/1021 正文 进入到项目代码 main包的路径下执行 go install命令,会在 GOPATH/bin路径下面生成一个可执行文件,比如 coin.exe 然后通过 coin 命令 参数的形式执行 go代码,每次输入一次,都表示执行一次main方法(支持带参数的执行main方法),而不是启动一个进程持续监听 代码实现:依赖 flag和 os 类库,读取执行main方法的参数的个数和参数值 flag指向一个命令,os用来获取参数的值和个数 默认命令算一个参数 比如 coin addCoin 命令就是2个参数 func (cl...阅读全文

博文 2018-11-27 18:34:43 黄靠谱

MyBatis 为什么需要通用 Mapper ?

MyBatis 为什么需要通用 Mapper ? 在早期项目文档中有过类似主题的内容,但是最近我自己看文档的时候发现一个问题,文档虽然很详细,但是并不适合初次接触的人。为了方便第一次听说,第一次尝试的开发人员了解通用 Mapper,补充此文档。 一、通用 Mapper 的用途 ? 我个人最早用 MyBatis 时,先是完全手写,然后用上了 MyBatis 代码生成器(简称为 MBG) ,在使用 MBG 过程中,发现一个很麻烦的问题,如果数据库字段变化很频繁,就需要反复重新生成代码,并且由于 MBG 覆盖生成代码和追加方式生成 XML,导致每次重新生成都需要大量的比对修改。除了这个问题外,还有一个问题,仅仅基础的增删改查等方法,就已经产生了大量的 XML 内容,还没有添加一个自己手写的方法,代...阅读全文

博文 2018-10-15 13:44:39 Enjoyjava

杨晓峰:开发者其实不太需要关注 Java 收不收费

作为继 Java 8 之后的第一个 LTS 版本,Java 11 的发布引起了广泛关注,一方面是因为这个版本带来了一些重要的新特性,比如热议的 ZGC、HTTP/2 Client、Flight Recorder 等,在内存管理与 JVM 诊断/Profiling 等方面都有很强的能力突破。 另一方面是因为 Oracle 针对 Java 的一系列动作,比如宣布变更版本迭代周期、修改了商业支持方式,推出订阅模式、在两种不同的 License 下提供 JDK ****发布版……这持续性的变化让大家不断困惑,开发者不知道还能不能愉快地免费使用 Java,也不清楚接下来将会面对一些什么。 虽然 Oracle 官方有解释,并且也有 30 几位 Java 社区领袖与专家联名发表了一篇文章,详细分析了 Ja...阅读全文

博文 2019-03-21 00:34:40 开发之家

2018-12-23晨间日记

天气:晴 任务清单 调试yaml文件 go 实例 Errors ,Goroutines, Channels 习惯养成类:日更800+字 && writingTime >=1h 习惯养成类:单词 30个,复习优先,你的目的是为了记住单词,而不是看到更多的单词。同理,记住单词也不是目的,而是使用英文阅读理解,沟通交流的手段。所以每个单词至少要熟悉一个例句。 周目标·完成进度 golang 1K 众病之王---癌症治疗的认知升级(总结2000字+) 梁宁的产品思维30讲(写总结2000字+) 学有所得 健康·饮食·锻炼 每天8000步,今天: 食物中低热量,底油,低盐的比重大于50%的重量:早上OK 人际·家人·朋友 至少每天1小时的陪伴 联系一个老朋友 工作·思考 最美好的三件事 早上没看天气,...阅读全文

博文 2018-12-23 11:34:45 郭青耀

解决XORM的时区问题

如果你升级使用了较为新版xorm(如v0.6.3)和go-sql-driver(如v1.3)的go类库,那么你就可能会遇到时区问题。 如 time.Parse("2006-01-02 15:04:05" ,"2018-01-15 12:11:12") // 2018-01-15T12:11:12+00:00 写入是数据库时候就会被改变为2018-01-15T20:11:12+00:00。 上述的就是时区问题,因为我们使用的是东8时区,默认会被设置为0时区,解决方案很简单,只需要在main函数中或者main包中初始化时区: time.LoadLocation("Asia/Shanghai") 数据库配置为 root:root@tcp(127.0.0.1:3306)/test?charset=u...阅读全文

博文 2018-07-02 12:23:11 梦朝思夕

2018-12-24 晚间日记

天气:晴 任务清单 调研 pachyderm 指导搭建环境,和用例。 习惯养成类:日更800+字 && writingTime >=1h 100% 习惯养成类:单词 30个,复习优先,你的目的是为了记住单词,而不是看到更多的单词。同理,记住单词也不是目的,而是使用英文阅读理解,沟通交流的手段。所以每个单词至少要熟悉一个例句。--100% 周目标·完成进度 golang 1K 众病之王---癌症治疗的认知升级(总结2000字+) 学有所得 我们的大脑,除了睡着,不会有闲着的时候。即便你想让自己什么都不想,你也做不到,即便你不在想有目标的事情,你也会有其他的念头冒出来。而且很多都是关于你和他人,和世界的关系。----这些只有在闲下来的时候,才会去做。 现实生活中,有些人,在他所在的领域里面,做的...阅读全文