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

Golang关于匿名结构体的一些总结

我们的故事的主人公是一个刚毕业的大学生小明: type User struct { RealName string Age int } user := User{RealName:"小明",Age:21} 25岁的时候他有了一辆车,于是我们为他定义一个车子的结构体: type Cart struct{ Brand string Price float64 } type User struct { RealName string Age int Cart Cart } cart := Cart{Brand:"本田",Price:100000.00} user := User{RealName:"小明",Age:21,Cart:cart} 30岁的时候,升级加薪,并为自己刚取的媳妇也买了一辆车:...阅读全文

博文 2019-12-13 21:32:42 游天小虾

golang与C/C++的简单比较

优点: 良好的跨平台,可交叉编译 简单的工程管理,通过文件夹系统管理,没有类似Makefile的工程管理文件 静态编译,没有动态库的依赖,部署方便,编出来只有一个可执行程序 语法简单易学 天生支持并发,goroutine和channel,适合服务器编程 缺点: 损失10%左右的性...阅读全文

博文 2019-10-09 19:32:44 aside section ._1OhGeD

golang protoc grpc编译没效果解决

1、下载github.com/golang/protobuf https://github.com/golang/protobuf 放到$GOPATN/src/github.com/golang目录下 2、安装grpc go get google.golang.org/grpc 3、安装proto go get -u github.com/golang/protobuf/proto go get -u github.com/golang/protobuf/protoc-gen-go 编译grpc/examples/helloworld/helloworld/下的proto文件 protoc --go_out=plugins=grpc:. helloworld.proto 如果编出来的没有加载...阅读全文

博文 2017-02-21 09:00:29 徐学良

liteide配置gdb问题

报错是这个: 09:45:41 GdbDebugger: /usr/local/Cellar/gdb/7.11/bin/ was not found on system PATH (hint: is GDB installed?) 09:45:41 LiteDebug: Failed to start debugger 然后我环境变量是这么配的 export PATH=$PATH:/usr/local/Cellar/gdb/7.11/bin 配置文件是这样的 LITEIDE_GDB=/usr/local/Cellar/gdb/7.11/bin/ 直接gdb --version也有 GNU gdb (GDB) 7.11 Copyright (C...阅读全文

这个女神节,阿里云工程师教你练就斩男美颜术

摘要: 这个女神节,阿里云程序员为女友送出特别礼物,包包?NO!首饰?NO!口红?零食?衣服?统统不是!是拥有一套盛世美颜绝密算法的直播SDK,多重算法练就直播高级美颜特效,大眼瘦脸腮红磨皮美白应有尽有,快速免费接入,让全世界的女神都能美美哒展示自己! 又到了一年一度的38妇女节 汉子们纷纷为女神献上膝盖,送上礼物 直男送出的礼物是这样的: image (截图来自天猫女王节) 吃货送出的礼物是这样的: image (截图来自天猫女王节) 老司机送的是这样的: image (截图来自天猫女王节) 自然也有一些高端玩家: image (截图来自天猫女王节) 但是无论怎么送,都离不开一个关键词:“美”! 为了让臭美女朋友lala在直播中拥有盛世美...阅读全文

golang 采集图片

帮朋友忙去采集的,看他打开韩国网站 一个一个点开去保存看不下去了速度太慢了,原本想用PHP写的,刚好看了无闻大大的go采集,然后无耻的改了下就用了, package main import ( "fmt" "io" "io/ioutil" "log" "net/http" "os" "path" "regexp" "strings" ) type NotFoundError struct { Message string } func (e NotFoundError) Error() string { return e.Message } type RemoteError struct { Host string Err error } func (e *RemoteError) Erro...阅读全文

博文 2015-06-17 20:23:33 lucifer_qiao

如何看待 2019 年 JAVA 开发就业减少现象?Java程序员应该如何提升自己?

不是JAVA找工作难,是所有的互联网求职都难,JAVA的落差最大。 一、互联网就业环境恶劣 如果2018年众人还对于「互联网寒冬」的论调半信半疑的话,2019年春季招聘旺季足以让每个求职者寒心。大厂裁员、小厂跑路,各公司收紧HC。虽然无法统计具体的失业人数,但是5月22日中国国务院办公厅22日下发通知,成立国务院就业工作领导小组的消息足以让所有人意识到就业市场的严峻。从100offer第一季度的薪资报告来看,虽然企业的面邀薪资仍然不断攀升,但是招聘岗位却再创历史新低,而这已经是连续第5个季度人均面邀数的持续下滑了。 二、JAVA求职市场严重缩水 虽然在2018年,Java 仍在互联网技术圈占据主导地位,但 Java 人才市场却经历了诸多转折点。 1、2018 年跳槽的 Java 求职者中,2...阅读全文

博文 2019-06-05 21:32:41 Java_老男孩

Golang交叉编译

Golang交叉编译 --------------------- 本文在Windows已正确安装Golang环境的情况下进行。Linux下类似操作即可。 要进行交叉编译先需要准备好编译相应平台及系统所需要的环境。 首先有两个用于指定叉编译目标平台的环境变量必要提前了解: GOARCH 目标平台(编译后的目标平台)的处理器架构(386、amd64、arm) GOOS 目标平台(编译后的目标平台)的操作系统(darwin、freebsd、linux、windows) 一、准备交叉编译的环境 1.通过控制台进入到该路径下的 D:\Go\src 目录中(假定Golang安装在 D:\Go 路径下)。在该目录中会有一个 make.bat(注:make.bash 可用于linux下) 的批出来文件。 2...阅读全文

golang-encoding模块学习

//Golang中encoding的用法 package main import ( "bytes" "encoding/binary" "encoding/hex" "encoding/xml" "fmt" "os" ) func goxml() { type Address struct { City, State string } //xml元素节点增加属性,需要重新定制结构体 type ElementWithAttr struct{ AttrOne string `xml:"attrone,attr"` AttrTwo string `xml:"attrtow,attr"` } type Person struct { XMLName xml.Name `xml:"person"` ...阅读全文

博文 2016-11-09 16:00:02 davidsu33

使用nsq的时候,handler阻塞导致整个阻塞

使用nsq的时候遇到这样一个问题: AddConcurrentHandlers(handler, 8)的时候,已经有多个协程处理收到的消息。然而,当其中一个handle发生阻塞时,会导致整个Consumer阻塞,runtime.GOMAXPROCS(runtime.NumCPU()) 代码调用了。下面的代码也看不出问题,请教一下为什么会发生阻塞? ``` // AddConcurrentHandlers sets the Handler for messages received by this Consumer. It // takes a second argument which indicates the number of goroutines to spawn fo...阅读全文

如何看待2019年JAVA开发就业减少现象?怎样提升自己?

不是JAVA找工作难,是所有的互联网求职都难,JAVA的落差最大。 一、互联网就业环境恶劣 如果2018年众人还对于「互联网寒冬」的论调半信半疑的话,2019年春季招聘旺季足以让每个求职者寒心。大厂裁员、小厂跑路,各公司收紧HC。虽然无法统计具体的失业人数,但是5月22日中国国务院办公厅22日下发通知,成立国务院就业工作领导小组的消息足以让所有人意识到就业市场的严峻。从100offer第一季度的薪资报告来看,虽然企业的面邀薪资仍然不断攀升,但是招聘岗位却再创历史新低,而这已经是连续第5个季度人均面邀数的持续下滑了。 二、JAVA求职市场严重缩水 虽然在2018年,Java 仍在互联网技术圈占据主导地位,但 Java 人才市场却经历了诸多转折点。 1、2018 年跳槽的 Java 求职者中,2...阅读全文

博文 2019-06-10 16:02:58 易水人去丶明月如霜

擦亮币圈差异化产品服务的特色品牌

全球数字货币市场覆盖广泛,用户群体资源主要被各大服务平台包揽,每个地区的服务平台的较大的区别,所以打造目标产品才是整个项目的有效载体,选择有特色、有优势的产品才是企业挖掘吸纳市场用户的核心关键。首先产品基本上是根据自身的资源和优势来进行选择,这不完全是站在用户的角度,也不是市场需要什么企业就做什么。在这一点上企业必须抓准自己的优势,并且有效的扩大,再考虑市场是否需要这样的产品。​当下全球数字货币经济发展飞速,币圈正逐步涌现出了一些新的项目方,其中不乏一些知名项目。然而在这里我们发现数字货币行业作为金融行业,品牌建设却是一个任重而道远的过程。对于建设项目品牌的目的其实就是综合各种资源打造好产品,提高客户满意度,提高市场独有性,提高产品在市场的美誉度和知名度。在这个脱离了流量红利期的市场,品牌定...阅读全文

模板市场开发者开放申请,人人争当模板设计师!

有没有试过,在你自助建站的时候因为设计网站模板而烦恼?因为看不上称心的网站模板而纠结?因为看上一套模板但是需要花钱而舍不得?这些问题让建站者感到头疼。那么对于模板设计师又有什么烦心的事呢?自己设计的网站模板得不到赏识;做出精致的模板没有好的市场进行出售;做出的模板放在市场上没人购买;这些揪心的问题成为了设计者的烦恼。 ![~@C6J4B(~R$$@N4NIX${HZT.png](http://studygolang.qiniudn.com/170313/bf94409f3a7eb8dde116f0c3eb582c58.png) 就在设计师正在苦恼的时候,建站宝盒模板市场先开启模板开发者的招募。无论你是不是设计师、是不是开发者、懂不懂设计、会不会专业技术都好,只要你有创意,就能零成...阅读全文

Linux核心命令之grub.conf配置核心知识详解

引导加载程序(Boot loader)是在计算机在加载操作系统内核之前运行的一段小程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境加载到一个适合的状态,以便为最终调用操作系统内核做好准备。通常,引导加载的程序依赖于硬件实现,早期的Linux系统常见的引导加载程序有2种,即Grub和Lilo,现如今Grub已经成为了主流(类似Windows下的boot.ini引导文件)。 引导加载程序读取grub.conf文件的配置信息,然后根据对应配置信息来启动不同的操作系统, 管理员可以从三个路径查看grub.conf的配置信息,具体如下所示: [root@oldboy boot]# cat /etc/grub.conf #<==也可读取/boot...阅读全文

linux常用命令面试(1)

1 创建目录/data/oldboy,并且在该目录下创建文件oldboy.txt,然后在文件oldbot.txt里写入内容“inet addr:10.0.0.8 Bcast:10.0.0.225 Mask:255.255.255.0”不包含引号 方法一 [root@zxc /]# mkdir /data/oldboy -p [root@zxc /]# cd /data/oldboy/ [root@zxc oldboy]# touch oldboy.txt [root@zxc oldboy]# vim oldboy.txt innetaddr 10.0.0.8 Bcaxt 10.0.0.225 Mask 255.255.255.0 [ro...阅读全文

DNS协议Golang实现

DNS客户端的实现还是用了Go语言,毕竟这个最熟悉。我的实现只是简单的实现了发送DNS请求,解析响应内容这些功能,对于多线程并发等机制都没有考虑。 我最先参考了《计算机网络》,上面提了一句,DNS请求就是发送一个UDP数据包,然后我就天真了,直接把域名的字符串用UDP发送了。结果就是没有响应。 后来就老老实实的分析协议,协议的分析请参考上一篇文章《DNS协议分析》。 域名服务器选用了阿里提供的233.5.5.5,53端口。详情可以查看阿里DNS官网。 先说一下Golang发送UDP数据报的方法。所有语言这块儿好像都长差不多,我就不多介绍了。 service := "223.5.5.5:53" udpAddr, err := net.ResolveUDPAddr("udp", service)...阅读全文

博文 2017-02-09 12:25:26 Bryce

2018年总结

2018年瞬时而过,现总结如下。每月做的事情:一月,教师资格面试二月,过年三月,微信转发统计程序四月,忘记。(需要做月总结)五月,学习消防工程师相关内容六月,学习消防工程师相关内容,提升计划去郑州七月,提升计划去郑州学习,带孩子八月,提升计划去郑州学习,入wish坑九月,wish发布商品并编写相关程序十月,wish发布商品并做自动化发布程序十一月,wish被罚弃坑,计划靠python爬虫挣钱坑大,需要账号,ip资源,入golang坑十二月,编了一个月golang,计划解决淘宝客引流问题,ip资源问题去年计划完成情况:去年未制定计划总之,今年理想很多,行动很饱满,现实是没有一个做成的,很失败。自己不断的入坑,弃坑。是自己没有制定2018年计划的原因吗?是一方面,明显今年没有目标,行动比较散乱。...阅读全文

博文 2019-01-02 18:34:47 勇勇_cf62

Go 中的接口的定义与使用

Go 里面的接口,绝对是我入坑程序员以来觉得最坑的一个东西了。为什么说它坑,就是怎么看怎么别扭。 说明 Go 中的接口是由使用者来定义的。这和传统的 接口 有点不一样(当然我们在开发的过程中可以根据具体的情况去决定谁用接口) 看一个例子: // package mooc type Retriever struct { Contents string } func (r Retriever) Get(url string) string { return r.Contents } // package main type Retriever interface { Get(url string) string } Go 里面比较恶心的是什么呢?就是这里的接口实现,从Java过来的看到这个肯定会...阅读全文

博文 2020-06-04 16:32:52 IT猿看视界

golang sync WaitGroup

golang sync WaitGroup 刚才看golang的sync的包,看见一个很有用的功能。就是WaitGroup。 先说说WaitGroup的用途:它能够一直等到所有的goroutine执行完成,并且阻塞主线程的执行,直到所有的goroutine执行完成。 WaitGroup总共有三个方法:Add(delta int),Done(),Wait()。简单的说一下这三个方法的作用。 Add:添加或者减少等待goroutine的数量 Done:相当于Add(-1) Wait:执行阻塞,直到所有的WaitGroup数量变成0 package main import ( "fmt" "sync" "time" ) func main() { var wg sync.WaitGroup for...阅读全文

博文 2016-03-26 17:00:01 chenglinhust

Let's go!!!

第一:不要认为停留在心灵的舒适区域内是可以原谅的。 每个人都有一个舒适区域,在这个区域内是很自我的,不愿意被打扰,不愿意被push,不愿意和陌生的面孔交谈,不愿意被人指责,不愿意按照规定的时限做事,不愿意主动的去关心别人,不愿意去思考别人还有什么没有想到。这在学生时代是很容易被理解的,有时候这样的同学还跟“冷酷”“个性”这些字眼沾边,算作是褒义。然而相反,在工作之后,你要极力改变这一现状。否则,你会很快变成鸡尾酒会上唯一没有人理睬的对象,或是很快因为压力而内分泌失调。但是,如果你能很快打破之前学生期所处的舒适区域,比别人更快的处理好业务、人际、舆论之间的关系,那就能很快的脱颖而出。 第二:不要把“好像”,“有人会……”,“大概”,“晚些时候”,“或者”,“说不定”之类放在嘴边。尤其是和上级谈...阅读全文

博文 2015-12-23 03:00:00 yang3301happy

go反射之后接口断言问题

这个问题困扰了我一晚上,但是最终还是被我试出来了。 问题场景: 1.我通过反射获取一个指针的value v := reflect.ValueOf(ptr).Elem() 这个指针指向了一个结构体,因为是指针所有我用了Elem()函数获取了指向的值。 2.因为ptr指针指向的结构体实现了一个接口,所以我用接口断言方法来调用接口的函数。 if _,ok := v.Interface().(XXX);ok{ ... } XXX是我实现的接口,看起来一切都没问题,但是问题来了。 //我用一个接口接收ptr的值 var i interface{} i = ptr if _,ok := i.(XXX);ok{ //ok为true ... } 如上所示,我用反射之前,接口断言没问题。但是v.Interfa...阅读全文

博文 2016-10-11 03:01:26 i冬瓜

go反射之后接口断言问题

这个问题困扰了我一晚上,但是最终还是被我试出来了。 问题场景: 1.我通过反射获取一个指针的value v := reflect.ValueOf(ptr).Elem() 这个指针指向了一个结构体,因为是指针所有我用了Elem()函数获取了指向的值。 2.因为ptr指针指向的结构体实现了一个接口,所以我用接口断言方法来调用接口的函数。 if _,ok := v.Interface().(XXX);ok{ ... } XXX是我实现的接口,看起来一切都没问题,但是问题来了。 //我用一个接口接收ptr的值 var i interface{} i = ptr if _,ok := i.(XXX);ok{ //ok为true ... } 如上所示,我用反射之前,接口断言没问题。但是v.Interfa...阅读全文

博文 2016-10-03 03:00:02 i冬瓜

2020 区块链 golang 版本(5)

封面 协议 如果发行数字货币也采用中心机构以发行传统货币的方式来发行数字货币,可能会存在哪些问题。其中一个最大问题就是双花问题,也就是用户通过复制数字货币(文件)形式进行多次支付。术语上称为花两次攻击(double spending attack)。要解决双花问题,可以由中心结构对数字货币加编码,中央结构需要维护一张表来记录每一个数字货币的去向,也就是每张货币的所有者。这样做势必带来繁重工作,如果采用去中心化的比特币来通过挖矿来实现对发币的控制。 通过维护数据结构记录并查询每一个数字货币的去向,只不过现在的数据结构不是由中央结构来维护而是由每一个节点来共同维护。这个数据结构就是区块链。 比特币交易中都需要输入(input)和输出(output)两个部分 输入部分要说明币的来源 输出部分需要给...阅读全文

博文 2020-04-26 21:32:45 zidea

golang 中 sync包的 WaitGroup

golang 中的 sync 包有一个很有用的功能,就是 WaitGroup 先说说 WaitGroup 的用途:它能够一直等到所有的 goroutine 执行完成,并且阻塞主线程的执行,直到所有的 goroutine 执行完成。 WaitGroup 总共有三个方法:Add(delta int), Done(), Wait()。简单的说一下这三个方法的作用。 Add:添加或者减少等待 goroutine 的数量 Done:相当于Add(-1) Wait:执行阻塞,直到所有的WaitGroup数量变成 0 请看例子: package main import ( "fmt" "sync" "time" ) func main() { var wg sync.WaitGroup for i := ...阅读全文

博文 2017-10-06 10:30:01 liang1101