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

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

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

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

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

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

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

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

go编程解数独

我编了个程序解数独题,试了很多题都能解出来,但碰到一道题解不了,好像是内存耗用太多之类的原因,其实感觉不应该会计算太多的。我想问下有没有人用go写过啊?帮解下这道题,如果能解出来,那就是我的代码有问题了,到时贴代码出来给大家看看。 000700001 900000628 602000590 000081005 070503000 090060070 000005000 200040086 040030000 0代表需要空白。 其实很怪,我将第一个填上5,马上就能解出来。 希望哪位帮解下...阅读全文

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

羊城遐思,逐梦前行

我愿为一朵浮萍 我愿为一朵浮萍 一朵无根的浮萍 飘荡在无边原野 流浪于大河山川 时而停留在沟渠 时而奔赴于江河 我渴望自由世界 波涛带着我寻找 哪里才是正确的方向 ? 我愿为一朵浮萍 一朵无根的浮萍 羡慕天空的云彩 嫉妒禽鸟的飞翔 哪里是梦的开始 哪里是梦的结束 只有不停的奔波 只有不停的流浪 我要到哪里找寻 找寻梦想起航的地方! 逐梦&结识 于今年,三番五次的辗转,最终还是落地于羊城,诸多波折,不尽言表。 在来羊城之前,也陆续几次来这里游历,但都时日不多,如匆匆过客般,来来去去。羊城之于我,诸多因缘,这里是我第一次为一个想法,独身奔赴的陌生城市,结识了我在文化知识上面的老师-小雅老师。小雅老师,对国学的认识深度,于我是生平仅见,比那些在百家讲坛上的老师也不遑多让,最让我倍感亲切的是,小雅老...阅读全文

博文 2019-06-30 23:32:45 逝我

我眼中的改革开放

「逝者如斯夫,不舍昼夜。」从党的十一届三中全会召开到现在,40 载春秋已经过去。生活中的一切也发生了翻天覆地的变化正如歌中所唱:我们唱着春天的故事,改革开放富起来...... 01 春天的故事 「1979年,那是一个春天,有一位老人在中国的南海边,画了一个圈。」 从那以后,中国波澜壮阔的改革开放走过了整整 40 年。这 40 年与 5000 年的中国历史相比虽是短暂而渺小的,但其影响却重大而深远,因为它改变了一个民族的历史命运,决定了一个国家的前途未来。 作为一名 90 后的学生,我虽没能亲眼目睹那 40 年前惊心动魄的伟大时刻,但却有幸能够见证这改革开放以来的中国速度与奇迹。 02 走进新时代 越来越「小」的钱包: 听父母说,在我出生前,买东西要凭粮票。在我儿时和父母出去购物时,他们总会带...阅读全文

程序员的简历怎么写?

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

关于GO与FFmpeg结合的问题!

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

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

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

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

傻瓜式的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

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

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

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

日记

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

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

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

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

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

go语言编程

package 指明源文件所在的包 func 用于定义函数 go里面除了for循环的初始化用到;,其他大部分都不需要 go中没有while循环,不过可以利用 for condition来模拟while 编译: go builde 编译的文件名 定义一个变量,比如字符串 var s string = "" go也自动推导出类型 var s = ""; 也可以 s:="" :=用在值声明并且初始化 05 package main 07 import ( 08 "os" 09 "flag" // command line option parser 10 ) 12 var omitNewline = flag.Bool("n", false, "don't print final newline"...阅读全文

博文 2014-10-04 19:26:30 linyilong3

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...阅读全文

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编程实战的问题

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

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 鹏徙南暝

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 淳属虚构

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

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_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 淳属虚构