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

golang连接mysql数据库实现增删改查

golang本身没有提供连接mysql的驱动,但是定义了标准接口供第三方开发驱动。这里连接mysql可以使用第三方库,第三方库推荐使用https://github.com/Go-SQL-Driver/MySQL这个驱动,更新维护都比较好。下面演示下具体的使用,完整代码示例可以参考最后。 下载驱动 sudo go get github.com/go-sql-driver/mysql 如果提示这样的失败信息:cannot download, $GOPATH not set. For more details see: go help gopath,可以使用如下命令解决 sudo env GOPATH=/Users/chenjiebin/golang go get github.com/go-sq...阅读全文

博文 2015-06-17 20:02:23 hxd861030

用Golang写爬虫(六) - 使用colly

Colly是Golang世界最知名的Web爬虫框架了,它的API清晰明了,高度可配置和可扩展,支持分布式抓取,还支持多种存储后端(如内存、Redis、MongoDB等)。这篇文章记录我学习使用它的的一些感受和理解。 首先安装它: ❯ go get -u github.com/gocolly/colly/... 复制代码这个go get和之前安装包不太一样,最后有...这样的省略号,它的意思是也获取这个包的子包和依赖。 从最简单的例子开始 Colly的文档写的算是很详细很完整的了,而且项目下的_examples目录里面也有很多爬虫例子,上手非常容易。先看我的一个例子: package main import ( "fmt" "github.com/gocolly/colly" ) func m...阅读全文

博文 2019-07-18 10:34:44 Golang编程

VSCode 下无法自动列出自定义package中的成员

我自定义写了个xmlConfig 的包,然后在main的包里引用它,编译,运行都很正常。但是xmlConfig的成员不能自动列出来,就是敲 "xmlConfig." 之后,VsCode不给提示,请教大家这如何解决? 我已经按章了VsCode的Go扩展,并且安装好了以下: go get -u -v github.com/nsf/gocode go get -u -v github.com/rogpeppe/godef go get -u -v github.com/golang/lint/golint go get -u -v github.com/lukehoban/go-outline go get -u -v sourcegraph.com/sqs/goreturns...阅读全文

SQL数据库为BIGINT时,插入数据库出错type: unsupported type big.Int

rows,err := app.PLADB.Query("SELECT TOP 1 convert(bigint,ID) AS [FSourceInterID] FROM History") if err != nil { return } defer rows.Close() var s interface{} for rows.Next() { err = rows.Scan(&s) if err != nil { panic(err) } fmt.Printf("x is of type %T\n", s) fmt.Println(s) } log.Println(app.PLADB.Query("inse...阅读全文

golang中往channel写入数据的时候,能不能指定从头部写入还是从尾部写入?

RT,业务场景需要,从channel读出数据后,如果处理失败,需要把数据再丢入channel,再处理。但是因为数据有一定的顺序(不能把失败的数据写到channel的尾部),所以我再把失败的数据丢入channel准备重试的时候,需要丢到channel的头部,然后再读出来进行重...阅读全文

Go洒给我一地的感觉

为看并行编程发到何样程度,21秒初识Go语言,聊记第一感觉。 语法乱,让我糊涂,甚于Perl,纳闷Go设计的第一宗旨是怎样达到的,自然编译器总感觉语言很清晰。 初看一下还挺有Pascal的味道的,那Professor W似乎又出现在面前。然而读到 var a int = 1 这种句式时,+_+了,美感全无,有点像把定语后置、宾语前置或独立主格结构都搅和在日语倒装里头。 沿袭把可选包变成内置标准一部分的模式,如C年代的lib,然后C++中STL更时髦,而Java功能就是一堆import堆起来的,CPAN让Perl易用……诚然,辅助包让语言变得有生命力。而Go就是从语法上内置了包,啥MPI啊、信号啊,贡献之处就在于简洁了,功劳不亚于C#里的lamda(话说lamda也不通俗易懂,继承了C#的风范...阅读全文

博文 2016-05-08 23:00:02 stoneandice

golang连接mysql操作示例增删改查

http://www.01happy.com/golang-mysql-demo/ 下载驱动 sudo go get github.com/go-sql-driver/mysql 如果提示这样的失败信息:cannot download, $GOPATH not set. For more details see: go help gopath,可以使用如下命令解决 sudo env GOPATH=/Users/chenjiebin/golang go get github.com/go-sql-driver/mysql GOPATH的值根据自行环境进行替换。 创建测试表 在mysql test库中创建测试表 CREATE TABLE IF NOT EXISTS `test`.`user` (...阅读全文

博文 2016-07-11 12:00:02 liukuan73

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-07-07 22:00:06 kamendula

Awesome go 增强

作为一个gopher,会经常查找golang已有的软件包,这个时候查看Github上的 [Awesome go](https://github.com/avelino/awesome-go) 中已经分门别类列出来的资源是经常的事。 但是,这个项目只是把github中的项目分类列出来而已,满足我的项目需求的包可能有很多个,我要从这些包中选择出最适合我的包,比如我的选择条件是: 1. star或者fork多,这说明gopher大众的认可程度高; 2. commits 或者 contributors 多,这说明项目的升级维护可能有保障; 3. 看license是不是支持商用,我首选Apache2.0,其次是MIT,其他的都得掂量掂量。 一个项目一个项目的点进去看这些数据,这种选择...阅读全文

golang select channel 如何保证安全退出,不丢失数据?

今天研究了一下channel的源码,对channel的安全退出有了一些小见解。在此结合实际应用,对select 于channel结合对情况下,安全退出channel做一下记录。场景1:直接退出(会丢失数据) 因为退出时,直接程序就中断了,channel里存对数据直接丢失。package main import ( "fmt" "sync" "time" ) var ( wg sync.WaitGroup channel = make(chan int, 10) ) func main() { //先写满一个channel for i := 0; i < 10; i++ { channel <- i } wg.Add(1) go func() { defer wg.Done() for { s...阅读全文

博文 2020-03-01 22:38:02 yuanshuli11

leetcode_1033

Golang: 思路:直接把我的题解搬上来吧 对abc进行排序,假定排完序后abc依次递增 条件1:b-a=c-b=1时,最小移动步数为0 条件2:不满足条件1, 那么看下b-a或者c-b有没有小于等于2的,有,那么最小移动步数为1 条件3:不满足条件1 2,那么最小移动步数为2 最大移动步数: 注意,这里是我不太理解的。我觉得以我对题意的理解,这题最大步数不是这么算的,比如 a=0,b=4,c=14 我可以先将a移动到7的位置,移动次数为7,移动后,位置变成[4,7,14] 再将4移动到10,移动次数为6,移动后,位置变成[7,10,14] 我认为这样的移动是符合题目给的条件的,但我此时就已经移动了13次了,而0 4 14的答案是12 题目想要我们求的最大移动步数,实际上是,max(a,b...阅读全文

博文 2020-02-19 15:32:48 淳属虚构

GO上传图片到图床的问题~

最近在捣鼓弄个程序自动上传图到sm.ms图床。 因为是零基础的新手,所以有难题被卡住了。 ![QQ截图20171221225508.jpg](https://static.studygolang.com/171221/c128ff752bc5c6451ae4110a01ba33a5.jpg) Request Payload就是上传的文件。 自己查资料看的有部分看不懂,有的自己实验了也不行,所以只能来这里请教一下各位了~~!! 如果方便的话,可以码一下代码贴上来谢谢,或者指点一下~十分感...阅读全文

Go-Interface

要点 interface关键字用来定义一个接口 Go没有implements、extends等关键字 实现一个接口的方法就是直接定义接口中的方法 要实现多态,就要用指针或&object语法 示例 package main import "fmt" import "math" type Shape interface { area() float64 } type Circle struct { r float64 } func (c *Circle) area() float64 { return math.Pi * c.r * c.r } type Rectangle struct { length, width float64 } func (r *Rectangle) area() f...阅读全文

博文 2016-09-07 04:00:04 u013344915

ETCD探索

ETCD探索 梗概 这篇文章旨在从源码角度分析ETCD MVCC、Lease、Watch的实现,帮助我们更好的使用ETCD。 ETCD是什么? 这是ETCD官网给出的解释,ETCD是一个KV存储。现在有太多的KV存储中间件,我们为什么要选择ETCD呢?原因就是这句话:"distributed", "reliable",ETCD是一个分布式的、可靠的KV存储。相比于Redis,ETDC不够快,但足够安全,可靠。每一个中间件都有自己的特点,我选择ETCD有两个原因: ETCD是GO写的,所以GO用起来很方便。(不用ZK的原因) 扩容方便。 在讨论之前,我们先看下ETCD的目录结构 auth 访问权限 client/clientv3 GO客户端SDK contrib 里面放着raftexample...阅读全文

博文 2020-02-19 17:32:49 HammerMax

2018-12-24 晚间日记

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

96元购买一年景安快云服务器

96元购买一年景安快云服务器 原价960元一年 刚好 阿里云的活动结束了 景安就接上来了 需要的朋友们可以参加 新用户才可以96元购买 1核CPU 2G内存 1M宽带 50G SSD硬盘服务器 活动链接:https://www.zzidc.com:443/main/huodong/onCloudBuy?groomid=eTGdimieXwM%3D 活动对象是个人实名认证的新用户 新用户:是指账户内没有任何有效订单的个人用...阅读全文

go语言-控制并发数

在Go语言自带的godoc程序实现中有一个vfs的包对应虚拟的文件系统,在vfs包下面有一个gatefs的子包,gatefs子包的目的就是为了控制访问该虚拟文件系统的最大并发数。gatefs包的应用很简单:import ( "golang.org/x/tools/godoc/vfs" "golang.org/x/tools/godoc/gatefs" ) func main() { fs := gatefs.New(vfs.OS("/path"), make(chan bool), 8) }其中vfs.OS("/path")基于本地文件系统构造一个虚拟的文件系统,单后gatefs.New基于现有的虚拟文件系统构造一个并发受控的虚拟文件系统。通过带缓存通道的发送和接受规则来实现最大并发阻塞:v...阅读全文

博文 2020-03-18 17:33:51 guoguocto

设计模式-03-生成器模式

生成器模式概述生成器模式将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。生成器模式的主要功能是构建复杂的产品,而且是细化地、分步骤地构建产品,也就是说生成器模式重在一步一步解决构建复杂对象的问题。 实现使用文件的导出来实现生成器模式。文件的导出有普通文本和xml等文件格式。生成器作为一个接口,不同的具体生成器具体实现接口的方法。还有一个指导者负责整体构建的算法部分,是相对不变的部分。 总结与分析生成器模式构建对象的过程是统一的、固定不变的,变化的部分放到生成器部分了,只要配置不同的生成器,那么同样的构建过程,就能构建出不同的产品来。生成器模式的重心在于分离构建方法和具体的构造实现,从而使得构建算法可以重用。具体的构造实现可以很方便地扩展和切换,从而可以灵活地组合来构...阅读全文

博文 2019-04-10 20:34:40 疯狂的卡卡

golang结构体json的时间格式化解决方案

使用了OSC这么久了还没有写一篇博文,真实惭愧!在次写下第一篇。 最近开发项目时候发现一个结构体的Json转换的时间格式问题。 即这种1993-01-01T20:08:23.000000028+08:00 这种表示UTC方法。从我们习惯来说,更喜欢希望的是 1993-01-01 20:08:23这种格式。 重新复现代码如下: package main import ( "time" "encoding/json" ) type Student struct { Name string `json:"name"` Brith time.Time `json:"brith"` } func main() { stu:=Student{ Name:"qiangmzsx", Brith:time.D...阅读全文

博文 2017-09-12 03:52:51 梦朝思夕

总结

在昨天的面试中,自己需要总结很多问题,以前一直怕面试,因为面试会问答很多以前都没怎么注意到的问题,常常面试了几次,拿到了一个差不多的工作,就停止面试了,这是一个死循环。现在清楚了一定时刻保持面试的状态,原因如下:1. 很多面试知识只在面试的时候被问到,在实际工作中只会用到一小部分。2. 要明白市场现在有什么类型的需求,需求量大不大 面试其实是一个策略,很多时候就是隐藏自己的劣势,发挥自己的优势。如何发挥自己优势呢?其实就是要结合面试官的问题,举一反三,把自己掌握的内容引出来,而不是仅仅回答面试官的问题,面试官并不是想用单一的问题难倒你,只是想了解实际知识的掌握情况,对问题深不深入,有没有实际经验。 接下来,需要各个方面都加强,对之前一些模拟两可的知识进行梳理,要达到熟练的程度,面对面试的问题...阅读全文

博文 2019-06-21 16:02:43 radial_light

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-07 03:00:57 kamendula

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-06 17:00:07 kamendula

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-07 01:00:33 kamendula

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-08 08:01:20 kamendula

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-06 20:00:01 kamendula

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-06 17:00:21 kamendula

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-06 19:00:01 kamendula

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-07 02:00:01 kamendula

go语言学习

自己名义上是在搜索部门,但主要做的是文本相关的工作。所以想自己如果说自己不会搜索,也挺尴尬的。于是找了一个叫wukong搜索的搜索引擎,打算学习一下。wukong搜索是用go语言写成的,所以正好学习下这门google的语言,然后顺便学习下wukong搜索,也算是一举两得。 本系列会主要写一些go语言学习相关的知识点,主要是一些跟其他语言(例如c,python)不同的点,会单独列出来。主要内容会基于go语言编程这本书来做学习,相关的代码会放到github上。 最后会对wukong搜索做一个比较详细的解释。 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('...阅读全文

博文 2016-09-06 18:00:24 kamendula

【译】Go工具要点

你是刚开始使用Go工具么?或者你想扩展知识?这篇文章将会描述每个人都需要知道的Go工具参数。 免责声明:这篇文章可能会有些偏见。这篇文章描述了我个人会用到的Go工具参数,还有一些是我周围的人遇到的问题。如果你还有别的想法,在Twitter联系我。 $ go build -x -x会列出来go build调用到的所有命令。 如果你对Go的工具链好奇,或者使用了一个跨C编译器,并且想知道调用外部编译器用到的具体参数,或者怀疑链接器有bug;使用-x来查看所有调用。 $ go build -x WORK=/var/folders/00/1b8h8000h01000cxqpysvccm005d21/T/go-build600909754 mkdir -p $WORK/hello/perf/_obj/...阅读全文

go拾遗

最近要做易用性完善写go的SDK,于是查了查go doc,发现自己写了两年半的go了,才发现godoc这一片净土。 本机通过浏览器查看go文档: $godoc -http=:6060 本地GOPATH/bin下的文件都有列出来,于是没按标准写的包看起来太不专业了。话说Go的固定格式省去了很多纠结的时间。Go文档大全 $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

    ').addClass('pre-numbering').hide(); $(this).addClass('has...阅读全文

博文 2017-10-21 12:01:03 Planet_X

[LeetCode By Go 29]492. Construct the Rectangle

马上写了30道题目了,使用golang写起题目来代码简洁明了,还可以非常方便的写测试用例,加上Goland可以进行调试,有如神助。 但无论如何,写了测试就会依赖测试判断对错,用了debug就会依赖debug来寻找出错的地方,这些其实都是自己大脑偷懒把压力推到了测试和工具上,在日常开发上可以这样提高代码质量和工作效率,但是在笔试面试时基本上不会用编译器调试代码,更别说写测试用例了。 因此,之后如果能直接把题目解出来,就不写测试用例了,我也省(写)时(烦)间(啦)嘛。 题目 For a web developer, it is very important to know how to design a web page's size. So, given a specific rectangu...阅读全文

博文 2017-08-20 10:05:06 miltonsun

golang结构体json的时间格式化解决方案

最近开发项目时候发现一个结构体的Json转换的时间格式问题。即这种1993-01-01T20:08:23.000000028+08:00 这种表示UTC方法。从我们习惯来说,更喜欢希望的是1993-01-01 20:08:23这种格式。重新复现代码如下:package main import ( "time" "encoding/json" ) type Student struct { Name string `json:"name"` Brith time.Time `json:"brith"` } func main() { stu:=Student{ Name:"qiangmzsx", Brith:time.Date(1993, 1, 1, 20, 8, 23, 28, time.L...阅读全文

博文 2018-07-02 12:19:04 梦朝思夕

Leetcode Python超琐碎笔记: 617. Merge Two Binary Trees

问题地址,难度:Easy 若有错误之处请予以指正:) 问题描述 Given two binary trees and imagine that when you put one of them to cover the other, some nodes of the two trees are overlapped while the others are not. You need to merge them into a new binary tree. The merge rule is that if two nodes overlap, then sum node values up as the new value of the merged node. Otherwise, ...阅读全文

博文 2018-10-28 13:34:45 simoncos

一些不常见的Go命令参数详解

你是刚开始使用Go工具么?或者你想扩展知识?这篇文章将会描述每个人都需要知道的Go工具参数。免责声明:这篇文章可能会有些偏见。这篇文章描述了我个人会用到的Go工具参数,还有一些是我周围的人遇到的问题。如果你还有别的想法,在Twitter联系我。$ go build -x-x会列出来go build调用到的所有命令。如果你对Go的工具链好奇,或者使用了一个跨C编译器,并且想知道调用外部编译器用到的具体参数,或者怀疑链接器有bug;使用-x来查看所有调用。$ go build -x WORK=/var/folders/00/1b8h8000h01000cxqpysvccm005d21/T/go-build600909754 mkdir -p $WORK/hello/perf/_obj/ mkdi...阅读全文

博文 2019-03-17 14:05:26 erlib