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

《The Way to Go》中文版《Go入门指南》

**《The Way to Go》**经原作者授权今日起以每日一小节的进度开始翻译,中文名**《Go入门指南》**。 本书以开源书籍的形式分享在Github上,提供给有需要的Go语言爱好者。 如果有翻译不当的地方,还望大家能够 **pull request** 以为本书提供更好的翻译质量。 repo地址:[https://github.com/Unknwon/the-way-to-go_ZH_CN][1] [1]: https://github.com/Unknwon/the-way-to-go_ZH_C...阅读全文

golang:实现thrift的client端协程安全

前言 Golang作为我们服务端开发的主要语言,实现了很多基础服务,比如oauth2,账户系统,支付,客服等。而在早期开发阶段,也尝试使用golang做页面展示,但每种语言都有自己最擅长的领域,让golang来搞前端实在是有点疼,最终我们选择php+golang的方式来作为整体的服务架构。 那么问题来了,php和golang这对好基友如何愉快的玩耍呢?结论是thrift是块好肥皂! 抛砖 市面上肥皂一大堆,最著名的是舒肤佳,那么我们为毛不用舒肤佳,而选择thrift呢。。。因为够酸爽! 这种酸爽,只有牙口好,才能吃嘛嘛香。众所周知,thrift有多种型号(传输协议),比如家用型的TDebugProtocol,持久型TBinaryProtocol还有爆炸型TCompactProtocol。 而...阅读全文

博文 2014-10-17 23:17:15 郝冠伟

Golang 的数组指针和指针数组

Golang 的数组指针和指针数组听上去有点乱不太好理解 但是自己动手敲一下 就一眼可以看出区别了 package main import "fmt" func main(){ x,y := 1, 2 var arr = [...]int{5:2} //数组指针 var pf *[6]int = &arr //指针数组 pfArr := [...]*int{&x,&y} fmt.Println(pf) fmt.Println(pfArr) } 可以看出代码中 数组指针 pf 的值得到的是一个指向arr 地址的一个指针 而指针数组 pfArr 则是一个数组内的元素全是指针类型 一下是打印出来的结果 &[0 0 0 0 0 2] [0xc04204a080 0xc04204a088...阅读全文

博文 2017-11-04 14:03:15 Mading_EVE

Go中error类型的nil值和nil

先看C语言中的类似问题:空字符串。 1 const char* empty_str0 = ""; 2 const char* empty_str1 = "\0empty"; 3 const char* empty_str2 = NULL; 以上3个字符串并不相等,但是从某种角度看,它们都是对应空的字符串。 empty_str0 指向一个空的字符串,但是empty_str0本身的值是有效的。empty_str1 指向一个非空的字符串,但是字符串的第一个字符是'\0'。empty_str2 本身是一个空的指针。 Go的error是一个interface类型,error的nil问题和C语言的字符串类似。 参考官方的error文档说明: http://golang.org/doc/go_faq.ht...阅读全文

博文 2014-11-05 13:00:01 kjfcpua

golang中调用C

项目中项目基本是golang,因为以前的一个库不太好用golang重写,所以只能使用cgo来调用,稍微记录一下 看使用文档 重要的事情说多遍都不为过,一定要仔细看文档: https://github.com/golang/go/wiki/cgo 注意cgo的注释和 import “C”之间不能有空行!!! Note that there must be no blank lines in between the cgo comment and the import statement. package main /* #include int test() { return 2016; } */ import "C" import "fmt" func main() { ...阅读全文

博文 2016-05-19 05:00:02 qq_33204116

进军人工智能,ai拼才会赢

2017的第一个月,已经让无数人类开始怀疑人生。错综复杂的人类大脑,终究败给了人工智能。当谷歌官宣横扫人类60局的Master其实就是升级版的AlphaGo的时候,人类对大脑的最后一点期待幻灭。 人工智能(AI)的概念已经火了两年,去年的乌镇互联网大会上,百度CEO李彦宏为了测试无人车,让工程师在马路上对无人车进行拦截,无人驾驶正式走进大众视野。一说到人工智能,大家会首先联想到有一个机器人的存在,其实,人工智能可不止在机器人上应用。 ![20170109172406_96866.jpg](http://studygolang.qiniudn.com/170110/8ee942f45dfcf80a7b804b97192fb41c.jpg) 过海关时的人像识别,开车时导航的路况...阅读全文

golang log使用

使用golang的基本log包能够满足日志的问题,特地做了一个例子如下,但感觉还是不太好,如日志文件的大小的控制等。先这样用着吧package mainimport ( "log" "os")func main(){ fileName:= "log_debug.log" //logFile,err := os.Create(fileName) logFile,err := os.OpenFile(fileName,os.O_RDWR|os.O_CREATE|os.O_APPEND,0644) defer logFile.Close() if err != nil { log.Fatalln("open file error!") } debugLog := log.New(logFile,"...阅读全文

博文 2017-05-17 07:16:24 haolifengwang

【互联网早报】2017.10.23

## ??国内新闻?? 1. 小蓝单车否认被永安行收购,称11月10日前退还押金; http://dwz.cn/6HMPQE 2. 短租平台洗牌提速,多数难掩亏损窘境转向抱团竞争; http://dwz.cn/6HMIZE 3. 60余广场舞App几乎全军覆没,大妈们的钱没那么好赚; http://dwz.cn/6HMDlu 4. 直播流量红利消褪,社交能否打开“后直播时代”大门? http://dwz.cn/6HMNHG ## ? 国际新闻? 1. 谷歌推出AVA数据库:让机器识别视频中人类行为; http://dwz.cn/6HMBCd 2. 智能手表商Garmin推出车载设备,内置Alexa语音; http://dw...阅读全文

主题 2017-10-23 01:18:32 polaris

易推宝让客户每天都在搜索引擎找到你!

当今互联网时代,传统地推,已经很难支撑一个企业的销售额。即使在人流量最大的地铁站做地推投硬广,来去匆匆的人潮也只愿意把目光驻足在小小的手机屏幕,忙碌的都市生活让大部分白领下班后直接选择回家。我们坚持最长时间的小习惯,大概就是每天都要看手机不下100次,每天参与贡献数十亿的网络流量…… 因此大部分企业把中心转向网络推广。最常见的方式有百度竞价(SEM)和搜索引擎优化(SEO)。百度竞价是有钱企业玩的游戏,大多本身已经占据了较大的市场份额,即使小企业做百度竞价,除非行业比较冷门,不然,即使你做了竞价也不到一定获得好的排名。SEO成了企业做网络推广最经济实惠的方式,但请一个好的SEO推广花费也不低,做关键词排名效果很难立竿见影,没办法让中小企业在短期提升业绩。经过对上万家中小企业的网络推广现...阅读全文

关于GO与FFmpeg结合的问题!

各位好,我想使用Go语言结合FFmpeg将视频格式进行转换,我不太想用命令的方式去搞。 请问有大家都是怎么做的?是可以结合ffmpeg编译好的模块实现吗? 我用命令行也发现有问题,如下: cmd := exec.Command("ffmpeg","-y","-i ", spath , "-vcodec copy","-acodec copy" ,dpath) 结果不行,一直在报错误,请问命令行大家如何使用的...阅读全文

程序员的简历怎么写?

前言 一份简历该怎么写?不同人和行业都有不同的看法观点。今天我就结合前面学习怎么写程序员简历一点点经验记录下来。无论是温故而知新,还是被有需求的人看见了,那都将是我的收获。哈哈哈 概要描述 个人简介哪些凸显/删除 技能应该怎么文字展现 项目经历怎么表达才能反客为主 学历与个人总结的重要性 排版主次顺序的多样选择 细节注意事项 不同的工作经验,简历的表达形式一定不一样!以下描述只针对工作3年以内工作经验的人。老鸟希望能够多指出一些建议方针,万分感谢。 每个人眼中的简历(只谈纸上部分) 职位身份不一样看待简历的点不一样,我个人理解如下要素 HR或许很关注一些硬性指标及工作背景,因为这样能在茫茫简历中快速筛选。 项目经理或许关注项目背景和技术匹配度。 老板,经理等.....(哈哈,我也不知道,可能...阅读全文

我的第一个GO程序

不说了,直接上图好! 这里要为GO的设计者点个赞,咱之前使用C语言构建一个工程的时候,除了要设计好工程的目录结构外,还要写一个繁琐的Makefile文件,Go语言倒好了,根本不用什么Makefile文件,连.h文件也都省了,反正编译器都这么智能了,还需要我们特意为声明而写一个.h文件吗。 而使用LiteIDE添加工程的时候也好简单,直接添加这个工程目录即可,哈哈简单得不能再简单了...阅读全文

博文 2015-09-23 09:00:01 -渐行渐远

如何建设一个商城网站

喜欢网上购物的朋友,会发现现在的网上存在各式各样大大小小的商城网站。而且很多人都想自己建设一个网上商城,希望能做的像淘宝,京东那样,但是对于商城网站建设会有什么难点呢? 做商城网站很多人会去参照目前最大型的商城网站门户来做,建站宝盒提醒各位建站人员,你要明白每一个商城网站都有自己的亮点或者功能。其实最重要最简单的一点就是要让用户明白你的网站,不要做一个用户都不懂得网站。这样会导致你的网站没有流量,更不要说能有交易量了。那做商城网站需要注意什么问题呢? 一、 拥有一个好的域名,让用户记住你 做网站第一步最重要的是要有一个好的域名,域名就等于是你网站的名字,如果你有一个容易记住的名字,那么用户也会记得你。一个好的域名不但能让用户记得你,还能让搜索引擎...阅读全文

傻瓜式的go modules的讲解和代码

一 国内关于gomod的文章,哪怕是使用了百度 -csdn,依然全是理论,虽然golang的使用者大多是大神但是也有像我这样的的弱鸡是不是? 所以,我就写个傻瓜式教程了。 github地址:https://github.com/247292980/go_moudules_demo 代码很少很简单。。。。 二 1.新建文件夹 go_moudules_demo 2.go mod之,生成go.mod文件 go mod init go_moudules_demo 语法 go mod init [module] 3.创建main.go,默认包名是gomod,需要改成main 4.创建正真的存放代码的文件夹 demo和文件gomod.go,注意不能与main放在同一文件夹下,因为会造成包名冲突 5.根据...阅读全文

博文 2019-03-10 11:31:03 qq_42606051

[golang]一定要设置超时

运行了好长时间的进程忽然挂了,结果打出好长的堆栈,显然是goroutine泄漏了。 逻辑很简单只是定时从指定api取值而已,怎么会泄漏呢? net/http.(*Transport).getConn //获取连接 /usr/local/go/src/net/http/transport.go:1004 created by net/http.(*Transport).getConn //建立新连接 /usr/local/go/src/net/http/transport.go:998 net.(*Resolver).LookupIPAddr //DNS查询 /usr/local/go/src/net/lookup.go:227 created by internal/singleflight...阅读全文

博文 2019-01-06 18:34:46 一桶冷水

薅羊毛的土豪项目【龙纪链】

薅羊毛的土豪项目【龙纪链】 龙纪链豪撒两亿ETH空投分享就能日薅千元! 好玩+好赚+好交易!猜哈希日收益翻30倍! 海外团队倾力打造长期项目,透明安全独创白嫖玩法 一分不花还赚钱!收益秒兑秒提 玩的就是放心! 真正零撸 轻松躺赚相信就干 不信就看 Telegram群: t.me/DGEraChain币用群: 0.plus/DGEraChain加微信: mox1080、xiang14gang、www799584123下载注册链接:https://front.dgera.net/regis.....阅读全文

博文 2019-09-13 14:32:40 哒哒区块链

go json转换

确定类型变换1234567891011121314151617181920212223242526272829303132333435package mainimport ( "encoding/json" "fmt")type F struct { H string K int}type A struct { B string C int D map[string]int E []int F F}func main() { txt := `{"b":"hello word","c":1,"d":{"a":1,"b":2},"e":[2,3,4,5],"f":{"h":"a","k":1}}` var ab A json.Unmarshal([]byte(txt), &ab) fmt.Pri...阅读全文

日记

放假第一天,手机上显示的是“06:47”,工作日叫不醒,周末起太早???然后还是磨蹭到9点起床,锅里是温的白粥,我说这是不是有点清淡,弟说你可以加点盐。我服。最后还是跑到隔壁镇的乐园面包买了个提子包,犹豫着要不要再买支维他奶,额还是隔壁美宜家买吧,你懂的。村口的东江大道真的有毒,每次过期或者中秋都会堵车,并不是车流大还是车祸而是道路施工,每年都是那个位置那个坑。今天还是不太想出门,在家继续学golang,看了一小时居然在沙发上睡着了,额头和背脊都是闷热的汗,屁股潮湿内裤紧贴着,赶紧开个空调回床上睡,这种迷迷糊糊慵懒的下午好想念了...阅读全文

博文 2018-09-22 23:34:43 徐E东

2018-10-06

目标:英语,MySQL,算法,Golang,Linux,课外扩展,恋爱,好脾气,辅导 英语:ChinaDaily40分钟,50个单词,20分钟听力。(1:30) MySQL:先把一本书看完,在学习下Redis,最后在返回来学MySQL。(50) 算法:主要在刷题看解析,这一阶段主要以抄代码学知识为主,还要多看看书。(3:00) Golang:还是要以抄代码为主,好好学习人家是怎么写出来的。(2:00) 算法和Golang:一定要与实践结合。 Linux: 这方面动力不大,但要坚持。(45) 课外扩展:选一本专业书来看。(30) 恋爱:慢慢来,但一定要找。 好脾气:不生气,不骂人,一定要乐观。 辅导:坚持下来起码也是一件好事,培养自己的耐心和脾气。 没时间的话:主要看算法书和Golang,听听...阅读全文

博文 2018-10-06 11:34:37 sea_monster

在个人博客实现「小课」系统

程序员这个行业,是一个终身学习的行业,经常会有新技术出现。我是一个很爱学习的人,喜欢尝鲜。每次想去学习一项新技术的时候,总是苦于找不到合适的入门教程。于是有了想自己写个小课系统的想法:希望能通过写一系列的文章,组织成一门小课,帮助想学习某项技术的同学快速入门。 有了这个想法之后,我开始准备搭建小课平台,一开始想的是做一个前后端分离的网站,后端用 Go 写 API,前端用 vue 写页面。 使用vue+ElementUI搭建出来的第一个版本长这样: 写完第一个版本之后,仔细想了一下,如果要写好这个小课系统的话,我还得做好几件事: 写 API ,前后端进行数据交互 写 Markdown 编辑器,在线录入课程 做服务端渲染,做 SEO 优化 一想到这里,头开始有点大,第一个对外发布的小课系统,我希...阅读全文

博文 2020-04-16 08:32:43 艾逗笔

go语言作用域踩坑

今天饭饭给我出了个题目,下面这段代码为什么报错,怎么改? 123456789101112131415161718192021222324252627package mainimport ( "fmt")type A struct { s string}func main() { var a *A if check(a) { a, err := generate() fmt.Println(a.s, err) } fmt.Println(a.s)}func generate() (*A, error) { return &A{s: "b"}, nil}func check(a *A) bool { return true} 运行一下,发现报错如下: 1234567panic: runtime ...阅读全文

博文 2017-11-04 01:25:37 Youmai の Blog

在个人博客实现「小课」系统

程序员这个行业,是一个终身学习的行业,经常会有新技术出现。我是一个很爱学习的人,喜欢尝鲜。每次想去学习一项新技术的时候,总是苦于找不到合适的入门教程。于是有了想自己写个小课系统的想法:希望能通过写一系列的文章,组织成一门小课,帮助想学习某项技术的同学快速入门。 有了这个想法之后,我开始准备搭建小课平台,一开始想的是做一个前后端分离的网站,后端用 Go 写 API,前端用 vue 写页面。 使用 vue + ElementUI 搭建出来的第一个版本长这样: 写完第一个版本之后,仔细想了一下,如果要写好这个小课系统的话,我还得做好几件事: 写 API ,前后端进行数据交互 写 Markdown 编辑器,在线录入课程 做服务端渲染,做 SEO 优化 一想到这里,头开始有点大,第一个对外发布的小课系...阅读全文

博文 2020-04-16 10:36:55 艾逗笔

go编程实战的问题

https://github.com/goinaction/code/tree/master/chapter2/sample, 这个是第二章的代码。个人还是不太能理解为什么在search/search.go上面可以通过一个go routine去等待waitGroup.wait(),而不用在run方法里面在原来的goroutine中进行waitGroup.wait0().因为之前写的代码以node和python为主,不太能理解为什么不用在主上面等待回...阅读全文

客户端发送多条 HTTP 请求用多线程会比单线程快吗?

本文想从一个角度来让大家认识到回答一个问题不能从表面或者感觉来判断,这是学习技术的大忌,很多新手如果刚开始没有一套学习方法,从各种碎片化信息去学习编程,学习一段时间很容易进入瓶颈期,所以我觉得有必要通过一些我平时思考过的问题,踩过得坑,来总结一下也方便自己日后巩固,另一方面也想分享出来帮助需要的人,让大家发现解决一个问题只有知道背后越多的概念和设计,思路才会越多,才会懂得基础的重要性,如果有幸能引发共鸣和思考,就非常幸运了,当然文中大部份的内容都是我自己内化过之后用浅显的语言描述,尽量让更多的人能听懂,不会像很多博客复制粘贴,我觉得也没有意义,如果有哪些地方没有讲清楚,也欢迎大家交流补充。首先从问题当中有几个重要的关键词,请求,线程,多,单,快。我们一个一个来稍为补充一下:1. 请求。在题目...阅读全文

博文 2020-01-07 11:32:53 KooFrank

GORM many2many关系表的创建和查询

最近在用golang搭建个人博客的后台,数据库选用了gorm + mySQL的组合,其中文章(articles)和标签(tags)两个表是多对多的关系,由于对数据库不是很熟悉,外加gorm的文档较为简略,在这里踩了很多的坑。现在在这篇文章中总结下实现的方法。 第一步:定义gorm表的struct type Article struct { gorm.Model Title string `gorm:"not null"` Content string `gorm:"not null"` Tags []Tag `gorm:"many2many:tag_articles"` } type Tag struct { TagId string `gorm:"primary_key"` TagName...阅读全文

博文 2020-03-28 03:32:49 _敏讷

log4g:站在巨人的头上实现一个可配置的Go日志库

更多精彩博文,欢迎访问我的个人博客 前言 本人Java程序员一枚,眼看着这几年Go的势头不错,本着技多不压身的原则,也随大流慢慢学习。不得不说Go其实跟Java差别还是挺大的,毕竟习惯了面向对象的思想,一时间也有点接受不过来。俗话说实践才能出真知,本想着拿刚学的点皮毛练练手,结果就遇到了一个问题:日志。 Go语言不像Java中有诸如Log4j的大哥存在,其自带的log库其实功能有限。虽然催生出了诸如logrus、zap等一系列优秀的三方日志库,但在github上找了半天始终没有找到一款符合自己需求的。 我需求的日志库功能 本来是想要一个支持日志分割,并且支持通过配置将日志分级别输出到不同目录的功能(好吧我就是觉得log4j真不错),但很多三方库都不支持这个功能。诚然,将日志写入logstas...阅读全文

博文 2019-10-17 21:32:53 鹏徙南暝

Go Strings 源码

模板引擎对LaTeX支持不太好,可以查看静态页面:链接 个人主页 Join Join 方法在字符串拼接的时候使用Builder,通过计算出Builder的大小,只需要分配一次空间。 // Join concatenates the elements of its first argument to create a single string. The separator // string sep is placed between elements in the resulting string. func Join(elems []string, sep string) string { switch len(elems) { case 0: return "" case 1: ret...阅读全文

博文 2020-03-30 23:33:25 Jupiter_Van

ARTS 第10周| LeetCode 23 Merge k Sorted Lists | Go 性能调优 | 项目管理很重要

ARTS ARTS 是陈浩(网名左耳朵耗子)在极客时间专栏里发起的一个活动,目的是通过分享的方式来坚持学习。 每人每周写一个 ARTS:Algorithm 是一道算法题,Review 是读一篇英文文章,Technique/Tips 是分享一个小技术,Share 是分享一个观点。 本周内容 本周你将看到: 多路归并排序的 Golang 实现。 Go 官方教你如何做性能分析。 项目经理真的很重要。 Algorithm 本周的算法题是一道链表和归并排序结合的题目:23. Merge k Sorted Lists. 这道题目的解法不陌生,对于用 Go 来解这道题的我来说,这道题的难点反而是在实现上。Go 中的 container/heap 我之前是不了解的,幸亏在我决定自己实现一个堆之前尝试搜索了一...阅读全文

博文 2020-07-22 00:32:41 casmo澎湃哥

leetcode_357

Golang: 思路:简单DP,这里可以注意到,当n>10,即这个数字的长度>10后,所有这个长度的数字都会有重复的现象发生,所以也可以直接穷举。 代码如下: DP的放在这里,双百时空间复杂度 func countNumbersWithUniqueDigits(n int) int { if n<0{ return 10 } arr1:=make([]int,11) arr1[0],arr1[1]=1,10 temp:=9 flag:=9 for i:=2;i=10 { return arr1[10] }else{ return arr1[n] } } 穷举的放在这...阅读全文

博文 2020-02-21 14:32:44 淳属虚构

leetcode_355

Golang: 思路:设计推特,搬运我的题解 这里的代码依旧有着很大优化的空间,比如按时间排序上,可以维护一个堆;对于每一个用户,我们可以只保存他/她的最近十条推特 但是不太想写了,因为比较麻烦。。。 globalId:类似timestamp时间标记 follower:记录每个用户关注的用户列表 checkFollowed表示关注关系,用户A是否关注了用户B,key为“id id”的形式,应该是可以保证唯一性的 twitter存储每个用户发过的推,但是value存的是globalId,方便以后取出来 findtwitter存储的是所有用户发的推 注意,这套代码是不满足并行与分布式的要求的。。。 代码如下: type Twitter struct { globalId int follower...阅读全文

博文 2020-04-13 11:32:46 淳属虚构

leetcode_213

Golang: 思路:这题我个人感觉要复杂一些,难度在于首尾相连,并且,你需要考虑的更全面一些。当然,这题做完的时间复杂度100%,空间47%,但我不太想优化了。简单来说,有房子[1...n],通过打家劫舍1得出的最大值,我们需要做出判断:如果我们没抢n,那么这个最大值没有问题,如果我们抢了n,那么就需要去看下我们抢没抢1,如果也没抢1,那么没问题,但如果抢1了,那么这个最大值就需要修改了,为max([2....n],[1...n-1])。 代码如下: func rob(nums []int) int { if len(nums) == 0 { return 0 } if len(nums) == 1 { return nums[0] } if len(nums) == 2 { if num...阅读全文

博文 2020-02-22 15:32:50 淳属虚构