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

GO 获取时间的年份、月份以及日期

网上很多资料提供time将时间戳转成字符串的例子,但如何将获得的时间分为年、月、日分别展示,例如: ,上面显示的是日期,下面显示的是月份。作为初学者,表示网上的资料有点看不懂,记录一下,还望斧正。 首先要获取一个Time类型的变量,平时要获取现在的时间的话,直接使用now即可,但若是从数据库中读取的数据应当如何呢?下面叙述: 直接获取系统时间 year:=time.Now().Year() month:=time.Now().Month()//time.Now().Month().String() day:=time.Now().Day() 引用数据库中时间数据 month = time.Unix(dynamic.UpdateTime/1000, 0).Month().String() da...阅读全文

博文 2015-10-24 21:00:06 dengpei187

关于golang的多进程的控制与示例程序

我们写C 的时候,假如用到多进程,我们通常都会用信号,管理等来进程进程间的通信, 那么golang是怎么实现这个的呢?? 直接看码说话吧 package main import ( "fmt" "time" ) func main() { timeout := make(chan bool, 1) go func() { fmt.Println("------------ 子进程1--------------") t1 := time.Now().UnixNano() fmt.Println(t1) fmt.Println("这个一定会执行") time.Sleep(3 * time.Second) // timeout <- true timeout <- true }() fmt.Pri...阅读全文

博文 2016-08-19 12:00:03 r00txx

区块链培训哪家机构靠谱?

2018年区块链发展趋势如何?CIFC智库区块链+百人会认为,2018年将是“区块链+”元年,区块链技术将与产业应用结合,将以“区块链+”为核心,构建区块链+金融、能源、物流、文化、媒体、娱乐、工业、农业、知识产权、旅游、房地产等行业与领域的应用模式。(http://bt.itxdl.cn/) 互联网二十多年,已到十字路口。区块链出现前的互联网被称为古典互联网,而应用区块链技术的互联网才进入了后互联网时代。2017年9月,中国政府网络发表文章《我国区块链产业有望走在世界前列》,支持区块链技术发展,并向13亿中国人民普及了区块链技术。未来区块链技术在中国大有作为。 区块链与其说是一门技术,不如说是一种思想或价值观! 如此可观的发展形势下,怎样才能进入该行业分得一块蛋糕?自学?报班参加培训? “...阅读全文

博文 2018-07-03 16:34:48 Delete_88c3

golang学习的点点滴滴:struct匿名字段

package main import "fmt" type Base struct { Name string Age int } type Child struct { Base // 匿名字段, 默认把Base的所有字段都继承过来了。 这样看起来才像真正的继承 Age int } func main() { c := new(Child) c.Name = "hello" // 可以直接使用Base中的字段 c.Age = 20 // 如果有重复的, 则最外的优先 fmt.Println(c.Name) // hello fmt.Println(c.Age) // 20 fmt.Println(c.Base.Age) // 要访问Base中的,可以这样写 0 ...阅读全文

博文 2014-10-04 19:27:41 亓斌哥哥

使用 go 写一个检测 tcp udp 状态的包

因为要跟着 dockerpool 的基友写 Docker 管理的程序,所以今年的目标是学习 go 语言。看完 go 的入门教程,高深的代码还看不懂,所以决定先尝试写一些平常可以用的东西,mac 底下的 nc 命令可以检测很多东西,但是用着不习惯,所以决定写一个 check tcp udp 的包。package main import ( "flag" "fmt" "net" ) const version = "0.1.0" var Input_protocol = flag.String("p", "tcp", "The protocol you want to check") func tcp(url string) int { _, err := net.Dial("tcp", url...阅读全文

博文 2015-01-06 16:00:12 qcpm1983

为什么阿里程序猿纷纷在内网晒代码?

大家知道,阿里有两万多名可爱的程序员。 他们也没什么别的爱好,就是多才多艺了一点:这帮阿里程序猿在改变世界前 要先撼动歌坛 就是热心肠了一点:阿里有个程序员,因为闯红灯上新闻了 虽然怕老婆但也能怕出新花样:因吵架总被骂,阿里程序猿一气之下发明“情侣吵架神器” 最近,他们突然搞了一次阿里巴巴内部最盛大的晒代码大赛。 事情是这样的。 前几天,在阿里一个小黑屋里,5名对代码有着极致追求的程序员参与阿里代码领域最高荣誉“多隆奖”的最终角逐。 多隆是淘宝第一代程序员,也是很多技术人心目中的大神。那天的评审现场Review的时候,看到某代码片段的最后结尾,多隆突然补上一句:往上翻看下第83行。 代码一般都是几百行,他看到了最后,居然还记得第83行的一个...阅读全文

定义 http 接口,以及 struct tag 的一点点经验,想法,求大神教育,菜鸟一同探讨

本人菜鸟,师父让我定义 与前台的 http 接口,我就做了,当然过程中被喷惨了。写写我最后的方法,以及我为什么这么写,欢迎大家探讨。 前提,所有接口 POST,json 方式 1.接口最后定义方式,基本上是大模块上是按照功能划分的,小模块上按照界面上需要的数据定义的。其实对后台来说,最好的方法就是不看界面,提供基本接口,让前台去组合。但是前台说 考虑到流量,手机耗电问题,所以最后无条件的 前台需要什么给什么,不需要的后台帮忙处理掉。这样做的坏处就是,后台代码写的比较乱,因为每个前台需要的界面都要单独一个结构体,命名上也比较难命名(因为后台自己的数据结构跟前台需要的差不多,只是少了个别字段),我现在也不知道好的接口到底应该怎么样定义。求大神狠狠教育一下我。 2.因为是 json,...阅读全文

如何建设一个商城网站

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

Golang之sdl2学习之路(零) -- 环境工具准备

学习Golang有一段时间了,从毫无头绪到四处乱撞,再到如今静下心来安心学习sdl2也有小半年了。 今晚重构之前的学习代码,发现如果不写该文,可能会在以后回顾这段时间写的代码上花费时间,故以此文做一点代码上的印记,并为将要学习golang版的sdl2同学提前躺雷。 本人Golang开发环境: OS: Debian 8.3 + gnome3 Golang安装: 下载地址:https://golang.org/dl/ 安装说明:https://golang.org/doc/install 安装说明一定要好好看一遍,可解决不少坑 Go封装库: https://github.com/veandco/go-sdl2 #安装方法 go get -u veandco/go-sdl2 编辑器:Atom At...阅读全文

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

双十一后还有这么优惠的活动,你知道吗?

又是一场创纪录的双十一结束了! 相信大家都有耳闻了 最后的成交量1682亿!!! 当小编我听到这个数字的时候 真的想就一句话 还有谁? 相信今年又多许多的吃土孩子了 虽然冲动消费不好 但是想想马上就要新年了 是不是有很多东西得开始筹备了? 新衣服是必须的! 手机又出新款了 要是为了省钱年货是不是也可以开始囤积了? 天气越来越冷了 各种护肤的宝贝是不是该入手? ... 最重要的 为了防止双十二继续剁手 是不是就该一次性败完家呢? 这样一想发现这次购物真是一次谨慎又智慧的选择! 但双十二真的就不买了吗? 相信忠实的剁手党 会用行动告诉我们这是不可能的! 这次双十一除了数字比较震撼人心 我无法释怀的就是各种优惠 就比如: 火炬红...阅读全文

程序员过阿里5次面试,还是和京东说了再见,网友:接着加班吧!

今天看到一位京东员工说道,过了阿里的第五次视频面试,谈好了薪资,再见了京东,再也不见。看到这则消息,感觉最近京东是怎么了,好像有很多人离职,或者是各种奇葩问题,所以现在我们来看看这位楼主,网友们是怎么样给他建议的呢?请看下图。​有网友马上就回复了,还是快点回去加班吧,楼主立马回复到,那也比京东强,还有一阵大笑声,楼主表示,只要技术总监过了就很快了,马上就可以离开了,看起来楼主的心情还是不错的,并且表示再也不想呆在京东了。​还有老员工说道,东哥拿你当兄弟。你没签敬业协议?​也有网友表示恭喜啊,面试时对不同的面试官你都问他们什么问题呢?求指导?楼主回复:谢谢大家,阿里的面试确实时间很长,而且问的内容非常细,可以看出面试官拖着疲惫的身体还严刑拷打你,这点让我很有感触,个人感觉最难的是面试的时候面对...阅读全文

博文 2019-04-27 18:51:54 javaworid

Go 语言的 Gearman API

学习 Go 已经有一段时间了,关于《学习Go语言》的翻译进度一如既往的像之前一样缓慢。每当翻译到一处,看到 Go 语言那精妙的设计的时候,就会忍不住想写点什么。好吧,其实我之前的计划是写一个自己用的proxy,不过还是算了吧,原因大家都懂。轮子造太多,没意思。 在整理一些之前的技术架构和思考新的架构的过程中,一次又一次提高了 Gearman 在系统中的重要性。虽然基于“新项目用老技术,老项目用新技术”的原则,并不打算在新的项目中使用 Golang。不过,总会有一天新项目要变成老项目吧?总会有一天,老项目需要做一些调整吧?理由牵强了点,但总是给自己找到了一个做的理由。 于是就有了这个:http://bitbucket.org/mikespook/gearman-go 最初构思的版本是对成熟的 ...阅读全文

博文 2014-10-09 16:15:38 mikespook

Go 边看边练 -《Go 学习笔记》系列(十四)(已完结)

相信大家在看编程语言学习教程的时候都会难免觉得有点枯燥: * 自己看书,遇到问题不方便求助 * 书上的代码片段、示例是静态的 * 虽然有时书上会给出运行输出,但是不够直观 * 自己拷贝代码到 IDE 里运行是也比较麻烦 * 即使运行了也要来回在 IDE 和书之间切换,还是麻烦 * 总之,[程序员都是懒人](https://www.baidu.com/s?wd=%E7%A8%8B%E5%BA%8F%E5%91%98%20%E6%87%92%E4%BA%BA&rsv_spt=1&issp=1&f=8&rsv_bp=0&rsv_idx=2&ie=utf-8&tn=baiduhome_pg&rsv_enter=1&rsv_sug3=14&rsv_sug1=5&rsv_sug2=0&i...阅读全文

golang99道练习题之07

**1.题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!** **2.程序分析:字符共有256个。不同字符,图形不一样** **3.程序源代码:** ```go package main import "fmt" func main() { var a rune = 176 var b rune = 219 fmt.Printf("%c%c%c%c%c\n", b, a, a, a, b) fmt.Printf("%c%c%c%c%c\n", a, b, a, b, a) fmt.Printf("%c%c%c%c%c\n", a, a, b, a, a) fmt.Printf("%c%c%c%c%c\n", a, b, a, b, a) fmt.Printf("%...阅读全文

博文 2018-11-19 16:31:41 hdking

以io.Writer为例看go中的interface{}

阅读该文后的一些理解 1 io.Writer接口 io.Writer接口有如下定义 package io type Writer interface { Write(p []byte) (n int, err error) } //根据go中接口的特点,所有实现了Write方法的类型,我们都说它实现了io.Writer接口。 2 somepkg.abc类型实现了io.Writer接口 package somepkg type Abc struct { id int } func (a *Abc) Write(p []byte) (n int, err error){ //writing.... return 1,nil //模拟返回,n表示写了几个字节,err表示是否有错误 } //根据go...阅读全文

博文 2014-10-04 19:26:27 waynehu

关于goroutine的一点点浅薄理解

###介绍 学习golang就不能不理解goroutine,关于goroutine的科普文章是http://studygolang.com/articles/1855, 这篇教程都第一次看就能看懂,写的非常好,当时以为会goroutine了,但是随着最近半个月的研究发现,如果只看了这篇文章就跟别人吹goroutine就真的贻笑大方了。 ### 我的学习启蒙 我对goroutine的进一步理解是通过这篇 http://morsmachine.dk/netpoller, 因为之前对epoll有些懂(只看过一点点科普文章),所以看这篇文章的时候我没怎么看懂,但是看懂了他说的问题,调用epoll按道理说一般是阻塞的,阻塞的情况下 scheduler 会将 M 拿走,将阻塞的 P 扔给 os...阅读全文

GopherChina2017以讲师身份参会感悟

时光荏苒。2016年北京GopherChina大会的情形还历历在目,2017年上海GopherChina大会又如约而至。 一、印象 这是我连续第二年参加AstaXie组织举办的GopherChina大会。而且不同于去年的是,这次我是以讲师身份参与的。虽然大会地点不同,我的角色不同,但不变的是和广大Gophers一样的对Go语言的极大热情。 这也是第三届GopherChina大会。随着Go语言自身的快速演进以及Go在国内各个行业应用的快速增长,GopherChina大会在大中华区的影响力与日俱增:既得到了更多圈内赞助商的赞助,也得到了Gophers们的极大关注。有好多Gophers都是GopherChina大会的连续参加者,有些Gopher甚至连续参加了三届,我个人就看到了好多去年在北京大会上...阅读全文

博文 2017-05-01 14:46:05 bigwhite

【Golang-基础】main redeclared in this block问题的排查与解决

之前的GO练习环境放在虚拟机内,方便了不少。不过在liteIDE打开的情况下,我迁移了虚拟机,刚好两台机子的VMware版本还不同,这就导致了无法恢复挂起状态,我放弃了挂起。 重新启动后,为了继续练习GO语言,我特意重新创立了一个工程。简单的hello world,然后编译并运行,报了如下的错误: image 但是,纵览整个代码区域,任何一个代码块里都没有再出现main函数的声明呀! 细心看一看,不难发现,在错误声明内说的已经很清楚,在同目录的heihei.go内,已经对main做了声明。 原来,这回创立新的go工程,当你还是选择默认目录的时候,并没有智能的创立文件夹进行隔离,导致了一开始创建的heihei.go和这次创建的test.go放在了同一块,导致了如上的问题。 image 现在,只...阅读全文

博文 2019-07-21 13:32:38 开发者阿俊

Grequests 库的使用

Golang:Grequests 库的使用 Go 语言版本的 request Go 语言内置的请求库 net/http 非常的优秀,但是在代码封装上却不尽完美 对于我这种习惯于用 Python 写爬虫的人来说,如果能有像 Requests 的 Py 库的 Go 版本实现那是再好不过了 所以 Grequests 就诞生了。 image 安装 go get -u github.com/levigross/grequests 其次,在语法格式上也是遵循 Py 库来封装的,直接来看它的用法 准备了一个模拟登录的 demo package main import ( "encoding/json" "fmt" //go语言版本的jquery //"github.com/PuerkitoBio/goqu...阅读全文

博文 2020-01-13 03:32:46 鬼子口音

学习go语言

在je上看见帖子,google出了go语言,跟着贴子看来一圈也没看明白什么意思,实例程序看着到是挺简单,但是不知道怎么运行,运行环境在哪弄,也看有人写了go的一个程序,看来也没有看懂怎么运行。希望关注go的朋友多交流一下,也请高手指导指导我们这些初级程序员,接触了写语言,都是接触的不深,现在go刚出来,我想这次能够学的扎实一点。如果有写了go程序的,请跟大家分享一下,开发工具啊,安装上的问题,以及如何运行等,感谢分享知识的所有...阅读全文

博文 2014-10-04 19:26:02 horseroad

golang导包

被坑的体无完肤,特此纪念,不是新手不要看 包结构如图 接下来我们要在main.go中调用myprint2.go中的方法 myprint2.gopackage test import "fmt" func MyPrint2() { fmt.Println("这条信息来自myprint2") } myprint.go package test import "fmt" func MyPrint() { fmt.Println("这条信息来自myprint") } main.go package main import ( "try2/test" ) func main() { test.MyPrint2() } 输出结果 C:/Go/bin/go.exe build -i [E:/goworks...阅读全文

博文 2016-01-29 04:00:01 u012210379

Golang并发(一)- 并发的介绍

People can only lose when they give up fighting, so long as they insist on fighting, they will not lose. 人,只有在放弃战斗的时候才算输,只要坚持战斗,就还没输。 Golang是并发语言而不是并行语言。 那么并行和并发有什么千丝万缕的关系的呢? 什么是并发,并行? 并发就是一次性做大量的事情的能力。 1. 解释一:并行是指两个或者多个事件在同一时刻发生;而并发是指两个或多个事件在同一时间间隔发生。 例如: 每天早上10分钟我洗脸,刷牙,吃早饭等等很多事情,这就是并发。 我一边刷牙的同时在烧水做饭这就是并行。 并发的关键是你有处理多个任务的能力,不一定要同时。并行的关键是你有同时处理多个任务...阅读全文

博文 2018-03-13 17:33:06 90design

Go的接口怎么那么难理解呢?

```go package read import ( "fmt" ) func NewLoginer() Loginer { return defaultLogin(0)//这里完全看不懂(0)是什么意思。 } type Loginer interface { Login() } type defaultLogin int func (d defaultLogin) Login() { fmt.Println("login in...") } ``` ## return defaultLogin(0)//这里完全看不懂(0)是什么意思,defaultogin不是一个自定义类型吗,怎么又是个函数了? 我是PHP来学习Go的,感...阅读全文

Golang、python中随机生成汉字的方法。。

代码很简洁,每个人能看得懂,不多说了。 GO语言: func main() { a:=make([]rune,100) for i:=range a { a[i]=rune( RandInt(19968,40869)) } fmt.Println(string( a)) } func RandInt(min, max int64) int64 { rand.Seed(time.Now().UnixNano()) return min + rand.Int63n(max-min) } python中更加简洁 import random, string def GB2312(): head = random.randint(0x4E00, 0x9FA5) return head s='' for...阅读全文

博文 2017-03-31 06:00:56 大洋的顶端

免费云服务器,这坑小心你也踩了

有些小伙伴可能不知道,亚马逊AWS对新用户有个免费体验一年的活动。如果希望体验免费亚马逊AWS云服务器产品,或者看看他们后台面板长什么样,体验产品的速度和性能,又或者准备搭建一个免费梯子,可以注册玩玩。 很简单,全程基本都是中文,不用担心看不懂英文。 我是2018年6月30号注册的账号,在EC2面板创建了一个实例,平时就上上谷歌;国内网速慢,在上面下载一些kubernetes镜像,编译一些golang项目。 悲剧的是我把时间记错了,以为是2016年8月10号开始使用的,能用到今年8月。直到8月份信用卡收到扣费提示,才发现时间记错了...于是乎,赶紧到EC2 DashBoard面板把实例停止,删除掉,以为这样就不会再扣费了。 结果到9月份又收到信用卡扣费提醒:这次我以为是扣除8月份的,也就20...阅读全文

博文 2019-10-14 00:02:40 小碗汤

Mark一下,有时间可以看一看的书

PHP 《PHP程序设计》(第2版) --PHP语法和入门最好的书 《PHP5权威编程》 --PHP入门后升级书 《深入PHP:面向对象、模式与实践》(第3版) --理解PHP中的面向对象和设计模式 《高性能PHP应用开发》 --了解一些基本简单的PHP优化 《PHP核心技术与最佳实践》 --了解很多PHP高级技术和延伸技术 《Extending and Embedding PHP》--PHP内核介绍和扩展开发最好的书!没有之一! MySQL 《MySQL必知必会》 --极好的MySQL语法参考书 《MySQL 5 权威指南》(第3版) --MySQL综合全面使用书籍,适合入门 《深入浅出MySQL——数据库开发、优化与管理维护》 --很多实用的MySQL技巧 《MySQL性能调优与架构设计...阅读全文

博文 2018-11-22 05:34:41 想象之中丶意料之外

go协程吃苹果的问题!打印结果看不懂,负了10多万

![apple.JPG](https://static.studygolang.com/190822/96a8b5051af9047d4a9505414559339b.JPG) ![r1.JPG](https://static.studygolang.com/190822/2921b927eb09f9d53bc1d167704f6df5.JPG)![r2.JPG](https://static.studygolang.com/190822/e709157d7e5827b6b50ec999d3599465.JPG) //第一个疑问 第一行的结果是什么鬼 打印了半截? //第二个疑问不论哪个协程先进入for{}循环一定会拿到apple 进行打印.是不是fmt.Println()打印函数有延...阅读全文

博文 2019-08-22 17:56:22 blackdinosuar

沉迷经典的人--读梭罗《阅读》

梭罗说的真正的书,是指什么书呢?不是故事书,不是文中提到的《小阅读》和《简易读物》。在梭罗看来,这些书纯粹是废纸,读这些书,就像读今天的故事会,只需要有小学文化,就能用来打发时间。在每个时代,一张张有文字的纸,订成本以后,摆到书店的货架上,就是一本书了。这是一种对书的误解,书是文字的集合,文字是思想和知识的载体。 其实我们当下的情况和他的康科德也差不多,走到书店里看看就知道了,有的书长得很像书,精美的封面和印刷,有质感的纸张,但是翻开读几页之后,会发现那只是一个有诚意,有几百页的篇幅的广告,给某个学校或者某个课程做的。有的书是纯粹的产品,和九块九包邮的拖鞋没什么区别,这些书被生产出来唯一的目标就是被卖掉,生产它的人一生可能都没有读过几本书,不然,为什么会有这种书出现呢,他都没有质疑自己,怎么...阅读全文

博文 2018-09-23 12:34:40 ZHOU_e3a0

求助一段 操作WMI代码

~~~ //这段网上复制来的 看起来有点像 估计改下可以实现我要的功能 不太看得懂 求助 希望帮改改下 //这个是一段 利用WMI获取当前Windows下进程的演示代码 //【如果可以 可以给个红包意思意思辛苦费嘻嘻!】 package main import ( "github.com/mattn/go-ole" "github.com/mattn/go-ole/oleutil" ) func main() { // init COM, oh yeah ole.CoInitialize(0) defer ole.CoUninitialize() unknown, _ := oleutil....阅读全文

hex和base32和base64的区别与联系

基本概念 hex也称为base16,意思是使用16个可见字符来表示一个二进制数组,编码后数据大小将翻倍,因为1个字符需要用2个可见字符来表示。 base32,意思是使用32个可见字符来表示一个二进制数组,编码后数据大小变成原来的8/5,也即5个字符用8个可见字符表示,但是最后如果不足8个字符,将用=来补充。 base64,意思是使用64个可见字符来表示一个二进制数组,编码后数据大小变成原来的4/3,也即3个字符用4个可见字符来表示。 用例 看个例子: package main import "fmt" import "encoding/hex" import "encoding/base32" import "encoding/base64" func main() { s := "hell...阅读全文

博文 2017-08-28 02:35:02 因心而来

LoRaWAN中使用到的编程语言

IoT开发环节中,可能用到多种编程语言。以LoRaWAN为例,我们列举一下主流开源项目使用的语言。 设备端 设备端编程主要是MCU编程。主要使用STM32/STM8/MSP430/AVR等MCU。由于ARM mbed/Arduino的参与,大多数低功耗Cortex和第三方MCU架构都可以用于设计设备。 C for STM32, gcc-arm-none-eabi, IAR/Keil C for STM8/MSP430, gcc C++, AVR/STM32, Arduino, gcc C++, ARM mbed, gcc-arm-none-eabi MicroPython, STM32 Lua, STM32 网关端 网关端硬件由于WiFi的参与,ESP32/8266系列会成为主体,而ESP3...阅读全文

博文 2018-10-09 13:34:40 小鱼儿他老汉

[GO语言]深刻理解Golang中的String字符串

[深刻理解Golang中的string] 说到string类型,我们往往都能很熟练地对它进行各种处理,包括迭代、随机访问和匹配等等操作。然而在工作中,我发现迭代(range会自动识别成字符)一个字符串产生的字符的类型与随机访问一个字符的类型却并不相同,为什么会这么奇怪呢?于是我决定一探究竟 string 简析 在Golang中,字符串本质上看一看做一个只读的字节切片(仅比切片少了一个Cap属性)。它的底层结构我们可以查看reflect.StringHeader得到: type StringHeader struct { Data uintptr Len int } 例如针对字符串"你好",其在内存中的表示如下图所示: nihao Go的源文件默认使用UTF-8编码,所有的字符串字面量一般也是...阅读全文

博文 2020-05-15 17:38:33 小龙in武汉

详解 kotlin 对 coroutines (1)

今天有以前同事问我如何应对高并发,java 通常的方案是线程池。不过线程池是有瓶颈的,而且成本高。这个是阿里巴巴架构师在分享中说到的。现在的解决方案是协程,协程好处多多,从表面上我们告别了通过回调来处理异步,回调写起来一层套一层,我们通常叫做倒三角形。 图 上面的代码,也是在 web 应用常见,我们拿到 token ,然后用 token 来创建一个 post 请求,最后处理我们返回数据。这里有两个异步,拿 token , 用 token 和 item 发起请求来获取我们所需的数据。 图 direct style 就是顺序执行代码,当 requestToken 结束后再执行 createPost。就这样执行下去。这样执行下去,虽然效率不高但符合我们思考习惯,代码看上去工整便于理解。 图 我们介...阅读全文

博文 2018-12-14 07:34:42 zidea

Golang设计模式——状态模式

状态模式及其结构 状态模式(State):当一个对象的内部状态发生改变时,会导致其行为的改变,对象看起来似乎修改了它的类。其别名为状态对象(Objects for States),状态模式是一种对象行为型模式。状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。 模式的结构 UML 状态模式.png 在状态模式结构图中包含如下几个角色: Context(环境类):环境类又称为上下文类,它是拥有多种状态的对象。由于环境类的状态存在多样性且在不同状态下对象的行为有所不同,因此将状态独立出去形成单独的状态类。在环境类中维护一个抽象状态类State的实例,这个实例定义当前状态,...阅读全文

博文 2019-04-17 03:34:41 CodePanda_Li

[Go] --- 数组

Email : hahayacoder@gmail.com Go语言中的数组操作比较简单,和C语言很像的,好了,废话不多说,直接上代码,相信都看得懂的 package main import "fmt" func main() { //声明包含5个int型的数组 var number [5]int fmt.Println("array number:", number) fmt.Println("array len:", len(number)) //设置数组中内变量的值 number[1] = 1 number[3] = 3 fmt.Println("array number:", number) //定义数组的另一种方式 num := [5]int{0, 1, 2, 3, 4} fmt....阅读全文

博文 2015-12-15 09:00:00 qiurisuixiang

七牛云存储list列出文件简单demo(php版本和golang演示)

/*640*60,创建于2013-5-24*/ var cpro_id = "u1290382"; 看到了七牛官网上很多问list这个API如何用?或者说人们看不懂,我用简单的例子或者demo来简单的给大家看看 这个如何用!一个php版本一个golang的简单demo! golang版本 package main import ( "crypto/hmac" "crypto/sha1" "encoding/base64" "fmt" "io/ioutil" "net/http" "strings" ) const ( SK = "D-K57TE5hPe3krexftxLWFKmL2xbQEKA-mtkrUfB" AK = "KUN6xYZlOAtid2MjHm90-6VFY2M7HC90ij...阅读全文

博文 2017-02-09 18:41:21 widuu

求教, 如何将一个自定义结构体的对象传入给一个参数为interface{}的函数,并给其赋值?

我之所以有这个想法是因为看到标准库里的 `func Unmarshal(data []byte, v interface{}) error` 是这样的,并且传入任意结构体实例的指针给v, 就能解出对应的值。 我的例子的playground : [https://play.golang.org/p/-WQQvSNqcJv](https://play.golang.org/p/-WQQvSNqcJv) 为什么我这个例子不可以呢?我有试着去看 `Unmarshal` 的原码,无奈有些看不懂,求大神们指教。 最好能把我的playground的修改一下,那么我看的就更清楚了。 ...阅读全文

NSQ源码-Nsq客户端

看完lookupd和nsqd之后我们再来看下nsq client端的代码。 我是想把nsq系统完完整整的看一遍,从而对他形成一个更整体的认识。对message queue来说他的client端就是生产者和消费者,生产者负责想nsq中投递消息,消费者负责从lookupd中获取到指定nsqd之后,从nsqd中获取消息。 生产者 我们以nsq/apps/to_nsq/to_nsq.go为例,客户端这边的代码逻辑就简单很多,NewProducer实例化一个instance,publish消息到nsqd。 /// nsq/apps/to_nsq/to_nsq.go producer, err := nsq.NewProducer(addr, cfg) err := producer.Publish(*...阅读全文

博文 2018-12-01 13:34:40 lzh2nix

GO语言预备知识 2019-5-8

昨晚大概3点钟睡了,现在10点半,才刚刚起来,新加坡的窗外暴雨滂沱。感觉像是要山洪爆发一样,继续看视频吧,反正也出不去。一、P20:转义字符-类似c语言,注意\r 回车符与\n换行符的区别。/r从当前行的最开头开始输出,覆盖掉原有内容。如:美利坚合众国\r希拉里输出结果:希拉里合众国P21:常见错误,(过于基础可以跳过)P22:注释,类C (跳过)注意块注释不能嵌套P23:代码风格-1、官方推荐尽量用行注释 快捷键ctrl+/ 2、正确的缩进和空白 快捷键shift+tab 整体向左移动 tab 控制整体向右移动 3、gofmt 指令 gofmt (-w)test.go 4.运算符两边习惯性加一个空格 5.func 风格举例 正确风格func main(){XXXXXXXXX}错误风格fun...阅读全文

博文 2019-05-08 19:35:18 竖琴犹奏相思苦