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

golang time 时间的加减法

time包中的Add和Sub的用法,Add用于计算某个时间之前和之后的时间点,Sub用于计算两个时间差 package main import ( "fmt" "strings" "time" ) func main() { // Add 时间相加 now := time.Now() // ParseDuration parses a duration string. // A duration string is a possibly signed sequence of decimal numbers, // each with optional fraction and a unit suffix, // such as "300ms", "-1.5h" or "2h45m". // ...阅读全文

博文 2016-11-02 10:00:03 CodyGuo

正确使用Go的Timer

我们总是会使用Timer去执行一些定时任务,最近在Go语言的定时器使用上面不小心踩到一点问题,这里记录一下。 go demo(input) func demo(input chan interface{}) { for { select { case msg <- input: println(msg) case <-time.After(time.Second * 5): println("5s timer") case <-time.After(time.Second * 10): println("10s timer") } } } 写出上面这段程序的目的是从 input channel 持续接收消息加以处理,同时希望每过5秒钟和每过10秒钟就分别执行一个定时任务。但是当你执行这段程序...阅读全文

博文 2014-11-16 09:30:05 skoo

如果你用Go,不要忘了vet

go tool vet是你的好朋友,不要忽视它。vet是一个优雅的工具,每个Go开发者都要知道并会使用它。它会做代码静态检查发现可能的bug或者可疑的构造。vet是Go tool套件的一部分,我们会在以后的文章中详细描述tool套件。它和go编译器一起发布,这意味着它不需要额外的依赖,可以很方便地通过以下的命令调用:$ go tool vet 本文中所有的go代码段可以正常编译。这使得go vet有价值:它可以在编译阶段和运行阶段发现bug。同时也注意,本文中的大多数代码都是故意写的很难看,不要使用。在go vet和go tool vet之间选择go vet和go tool vet实际上是两个分开的命令。go vet,只在一个单独的包内可用,不能使用flag...阅读全文

博文 2017-03-20 03:07:57 小弧光

golang 计算两个时间的时间差

package main import ( "fmt" "time" ) func main() { //Add方法和Sub方法是相反的,获取t0和t1的时间距离d是使用Sub,将t0加d获取t1就是使用Add方法 k := time.Now() //一天之前 d, _ := time.ParseDuration("-24h") fmt.Println(k.Add(d)) //一周之前 fmt.Println(k.Add(d * 7)) //一月之前 fmt.Println(k.Add(d * 30)) ...阅读全文

博文 2016-02-24 12:00:11 gzw13999

Golang中的time.After的使用理解

关于在goroutine中使用time.After的理解, 新手在学习过程中的“此时此刻”的理解,错误还请指正。 先线上代码: package main import ( "fmt" "time" ) func main() { //closeChannel() c := make(chan int) timeout := time.After(time.Second * 2) // t1 := time.NewTimer(time.Second * 3) // 效果相同 只执行一次 var i int go func() { for { select { case <-c: fmt.Println("channel sign") return case <-t1.C: // 代码段2 fm...阅读全文

博文 2017-07-04 07:03:35 90design

golang 格式化时间为字符串

package main import ( "fmt" "reflect" "time" ) func main() { //格式化字符串为时间 test, _ := time.Parse("2006-01-02", "2013-11-11") //时间增加 after, _ := time.ParseDuration("15m") fmt.Println(test) test = test.Add(after) fmt.Println(test) //格式化时间为字符串 t3 := test.Format("2006-01-02 15:04:05") fmt.Println(t3) //格式化时间为字符串,只保留年月日 t3 = test.Format("2006-01-02") fmt....阅读全文

博文 2014-10-04 19:26:12 forrestsun

golang的闭包和普通函数调用区别

先看一段程序 package main import ( "fmt") func main() { a := []int{1, 2, 3} for _, i := range a { fmt.Println(i) defer p(i) } } func p(i int) { fmt.Println(i) } 运行这段程序,输出结果为 1 2 3 3 2 1 这里就是普通的函数调用,每次调用func p时,完成 i 的值复制,然后打印,此时 i 值复制了3次,分别是1,2,3。由于defer是后进先出,所以执行变成3,2,1 下面我我们用闭包改写下程序: package mainimport ( "fmt")func main() { a := []int{1, 2, 3} for _, i ...阅读全文

博文 2014-10-04 19:26:14 liangDream

golang -- 时间日期总结

golang时间处理 相关包 "time" 时间戳 当前时间戳 fmt.Println(time.Now().Unix()) # 1389058332 str格式化时间 当前格式化时间 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3-4-5 # 2014-01-07 09:42:20 时间戳转str格式化时间str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") fmt.Println(str_time) # 2014-01-07 09:32:12 str格式化时间转时间戳...阅读全文

博文 2014-10-04 19:26:54 flyking

golang时间处理

golang时间处理 相关包 "time" 当前时间戳 fmt.Println(time.Now().Unix()) # 1389058332 当前格式化时间 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) # 这是个奇葩,必须是这个时间点, 据说是go诞生之日, 记忆方法:6-1-2-3-4-5 # 2014-01-07 09:42:20 时间戳转str格式化时间 str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") fmt.Println(str_time) # 2014-01-07 09:32:12 str格式化时间转时间戳 the_time :=...阅读全文

博文 2014-10-04 19:27:10 千山万水

Golang 优化之路——HTTP长连接

写在前面 压测的是否发现服务端TIME_WAIT状态的连接很多。 netstat -nat | grep :8080 | grep TIME_WAIT | wc -l 17731 TIME_WAIT状态多,简单的说就是服务端主动关闭了TCP连接。 IMG-THUMBNAIL TCP频繁的建立连接,会有一些问题: 三次握手建立连接、四次握手断开连接都会对性能有损耗; 断开的连接断开不会立刻释放,会等待2MSL的时间,据我观察是1分钟; 大量TIME_WAIT会占用内存,一个连接实测是3.155KB。而且占用太多,有可能会占满端口,一台服务器最多只能有6万多个端口; TCP 相关 长连接的概念包括TCP长连接和HTTP长连接。首先得保证TCP是长连接。我们就从它说起。 func (c *TCPC...阅读全文

博文 2017-06-02 09:08:08 Cyeam

Golang 获取当前时间

package main import ( "fmt" "time" ) func main() { t := time.Now() //2019-07-31 13:55:21.3410012 +0800 CST m=+0.006015601 fmt.Println(t.Format("20060102150405")) //当前时间戳 t1 := time.Now().Unix() //1564552562 fmt.Println(t1) //时间戳转化为具体时间 fmt.Println(time.Unix(t1, 0).String()) //基本格式化的时间表示 fmt.Println(time.Now().String()) //2019-07-31 13:56:35.7766729...阅读全文

博文 2019-08-09 14:39:05 LLL_小浪

Go程序GC优化经验分享

作者:达达 来源:http://1234n.com/?post/yzsrwa 最近一段时间对《仙侠道》的服务端进行了一系列针对GC的调优,这里跟各位分享一下调优的经验。 游戏第一次上线的时候,大部分精力都投入在做cpuprof和memprof找性能瓶颈和内存泄漏上,没有关注过Go的GC运行情况。 有一次cpuprof里的scanblock调用所占的比例让我注意到Go的GC所带来的性能消耗,记得那份cpuprof里,scanblock调用占到49%。也就是说有一半的CPU时间浪费在了GC上。 于是我开始研究如何进行优化,过程中免不了要分析数据,经过一番搜索,我好到了GOGCTRACE这个环境变量。 用法类似这样: GOGCTRACE=1 ./my_go_program 2> log_file ...阅读全文

博文 2014-10-29 01:00:00 LvanNeo

url解析

Golang URL解析今天利用课余时间看了一下Go语言的URL解析,于是就实践了一下,为了大家一起学习交流,故贴出来和大家一起分享,如有什么错误,请各位大神批评指出,共同进步。本人邮箱:1975210542@qq.compackage main import ( "fmt" "net/url" "strings" ) func main() { Url := "https://root:123456@www.baidu.com:0000/login?name=xiaoming&name=xiaoqing&age=24&age1=23#fffffff" //Parse函数解析Url为一个URL结构体,Url可以是绝对地址,也可以是相对地址 // type URL struct { // Sc...阅读全文

博文 2017-06-16 09:55:43 131360144

使用 fasthttp 时要注意的两个点

#我们做的是聚合支付系统,使用的是fasthttp 作为http server, http client 也是使用fasthttp ### 1. 第一个问题出现的场景是我们使用fasthttp client 请求微信支付时报了这个err ErrConnectionClosed ``` the server closed connection before returning the first response byte Make sure the server returns 'Connection: close' response header before closing the connection ``` ![image.png](http://upload-images.jian...阅读全文

博文 2017-12-16 13:45:41 Bulesxz

微服务实践(七):从单体式架构迁移到微服务架构

【编者的话】这是用微服务开发应用系列博客的第七篇也是最后一篇。第一篇中介绍了微服务架构模式,并且讨论了微服架构的优缺点;接续文章讨论了微服务架构不同方面:使用API网关,进程间通信,服务发现,事件驱动数据管理以及部署微服务。本篇,我们将探讨将应用从单体式架构迁移到微服务架构需要考虑的策略。 @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自Rancher、携程、PPTV、蚂蚁金服、京东、浙江移动、海尔电器、唯品会、eBay、道富银行、麻袋理财、土豆网、阿里百川、腾讯游戏、数人云、点融网、华为、轻元科技、中兴通讯等公司的技术负责人将带来实践经验分享,5月7日之前购票只需438元,欢迎感兴趣的同学抢购。 希望读者通过本系列文章对微服务优缺点有一个比较好的理解,以及...阅读全文

博文 2016-05-11 10:46:15 hokingyang

微信小程序解码工具

项目地址 https://github.com/sjatsh/unw... & 个人博客 https://sjatsh.com 起因 前段时间想学习微信小程序开发但是又没有什么深厚前端功底,看到很多很好玩的小程序想要做一个类似的学习学习,所以想着借鉴一下现有的小程序。但是苦于没有源码,抓包也没有办法获取源码。 google后知道可以用安卓模拟器安装微信然后安装小程序,然后在文件系统中找到小程序对应的wxapkg文件,拿到压缩包解压后就可以得到小程序源码。 但是压缩包是2进制文件,找了一遍后发现一个现有现有的开源项目可以直接解压小程序压缩包。 废话不多说,直接开干~ 获取小程序压缩包文件一、下载网易MuMu安卓模拟器 下载地址 http://mumu.163.com/ 二、安装微信和RE文件管...阅读全文

博文 2019-01-08 01:34:44 打瞌睡滴花花

golang消息队列实现用什么比较好?

项目开始需要与其他语言开发的项目通信,http请求比较损耗性能,但短时间内不太可能要求其他平台改成rpc通信。所以打算先用消息队列实现,网上搜了一下,好像golang用redis作消息队列比较少。 请问大家,golang 开发的项目还有什么其他的消息队列吗?如果是用redis做消息队列,会有什么问题吗...阅读全文

golang 中的日期时间

Golang 中的日期和时间 包名 time 当前时间 time.Now() 当前时间戳 time.Now().Unix() 时间格式化string time.Now().Format("2006-01-02 15:04:05") time.Now().Format("2006-01-02") 时间戳格式化到string str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") string 转化到 时间 以上是时间转化 接下来是总会用到的特殊事件 现在时间 time.Now() 今天00:00:00 now := time.Now() year, month, day := now.Date() today_str...阅读全文

博文 2015-06-17 20:04:34 csapr1987

Golang-设置系统时间

// 接收UDP时间广播,并设置系统时间 func (sl *Slaver) masTimeSync(ch chan int) { // 开始监听广播时间 log.Printf("time sync listen [%s]", sl.Node.Port.PortUdpSlaTimeSync) for { (func() { // 监听 mas 发来的同步时间 lis, err := socket.NewListen("", sl.Node.Port.PortUdpSlaTimeSync, 3).ListenUDP() // 判断监听是否建立成功 if err != nil { // 异常抛出 log.Fatalln(err) } // 保证监听正常关闭 defer lis.Close() /...阅读全文

博文 2015-03-03 21:41:22 nulijiabei

golang 时间加减

package main import ( "fmt" "time" ) // 这个方法就是把加减时间值和时间整合到了一起而已 func CTime(t time.Time, time_str string) time.Time { time_part, err := time.ParseDuration(time_str) if err != nil { fmt.Println(err) return t } return t.Add(time_part) } func main() { k := time.Now() /*ParseDuration解析一个时间段字符串。一个时间段字符串是一个序列,每个片段包含可选的正负号、 十进制数、可选的小数部分和单位后缀,如"300ms"、"-1.5...阅读全文

博文 2017-10-30 06:03:10 捍卫机密

golang中获取当前时间

package main import ( "fmt" "time" ) func main() { t := time.Now() fmt.Println(t.Format("20060102150405")) //当前时间戳 t1 := time.Now().Unix() fmt.Println(t1) //时间戳转化为具体时间 fmt.Println(time.Unix(t1, 0).String()) //基本格式化的时间表示 fmt.Println(time.Now().String()) fmt.Println(time.Now().Format("2006year 01month 02day")) ...阅读全文

博文 2019-03-21 00:34:40 时间里的小恶魔

golang 时间计算

package test import ( "testing" "time" "fmt" ) func Test_time(t *testing.T) { now := time.Now() fmt.Println("当前时间:", now) //两小时之后的时间 h,_ := time.ParseDuration("2h") nowAfter2Hour := now.Add(h) fmt.Println("两小时之后的时间:", nowAfter2Hour) //两小时之前的时间 negativeH,_ := time.ParseDuration("-2h") nowBefore2Hour := now.Add(negativeH) fmt.Println("两小时之前的时间:", now...阅读全文

博文 2018-01-22 12:33:04 漂泊的树叶

为开发者赋能,阿里云大学人才交流市场全新上线!

据了解,阿里云大学为了打造DT时代下全链路的人才培养生态,再次重磅发力,即打造从学、到练、到赛、到考之后,阿里云大学人才交流市场重磅上线,全力打造创新型人才培养的全方位闭环生态链。 (阿里云大学:edu.aliyun.com) 据悉,数日之前,阿里云大学上线业界首创的全在线、轻量级、场景化Apsara Clouder认证(https://edu.aliyun.com/certification),引起了千人参与考试认证的热潮。这次秉持“让天下没有难做的生意”的初心,阿里云大学又联合阿里巴巴旗下专业招聘平台淘工作,打造阿里云大学全新人才培养生态,打造从学、到练、到赛、到考、到就业的全方位闭环生态链,致力于为数以百万计的中小企业输出优质的上云人才,在“云生态”行业标签,汇...阅读全文

Gin实践 连载十一 Cron定时任务

Cron定时任务 项目地址:https://github.com/EDDYCJY/go... 如果对你有所帮助,欢迎点个 Star 或赞 ???? 在实际的应用项目中,定时任务的使用是很常见的。你是否有过 Golang 如何做定时任务的疑问,莫非是轮询? 在本文中我们将结合我们的项目讲述 Cron 介绍 我们将使用 cron 这个包,它实现了 cron 规范解析器和任务运行器,简单来讲就是包含了定时任务所需的功能 Cron 表达式格式 字段名 是否必填 允许的值 允许的特殊字符 秒(Seconds) Yes 0-59 * / , - 分(Minutes) Yes 0-59 * / , - 时(Hours) Yes 0-23 * / , - 一个月中的某天(Day of month) Yes ...阅读全文

博文 2018-04-29 17:34:36 煎鱼

[翻译]mongodb日志分析工具mtools之mplotqueries

mtools是一组非常好用的mongodb日志分析工具,里面最复杂的命令是mplotqueries,上网查了一下,还没有人翻译过。英文不好,费了好大的劲翻完,翻的不好,但没有办法,我英文水平就这么多~ 原文地址:https://github.com/rueckstiess/mtools/wiki/mplotqueries ----------------------------------------------------------------------------------------------------------------------- mplotqueries Thomas Rueckstiess edited this page on 9 Oct · 31 revis...阅读全文

博文 2014-11-27 17:00:01 吕明明

区块链技术(如何搭建golang语言开发环境)

目前比较大家熟知的有比特币,以太坊eth,etc等等。但是关于比特币是用什么语言实现的,就并不太清楚了,实现比特币开发的语言是谷歌开发的golang语言,今天下面的文章主要讲的就是如何的搭建go语言开发环境;关于开发环境,没有接触过计算的人来说就是你下载美图秀秀,然后在电脑安装,现在都是简易安装,你使用美图秀秀P图,我们是用go语言编程,其实说白了就是下个程序,然后安装。链接一:go语言下载链接 golang.org/dl/谷歌的网页貌似加载了某种识别程序,能够直接识别这是windows系统,而且直接识别是64位系统的。(如果这个链接打不开,也可以在其他地址找到相应的下载) golang语言下载页 点击红色方框部分下载即可,如果你是其他系统的选择相应的文件下来。然后双击开始运行,如果你是新手...阅读全文

Go语言_时间篇

Go的time包是标准库中的包之一 不用说,几乎是开发必须用到的包之一。time包的说明文档在: http://golang.org/pkg/time/ 先注意下Overview中的一句话: The calendrical calculations always assume a Gregorian calendar. 这个包的时间计算式是基于格里历,就是我们使用的公历。关于格里历的历史,可以看百度百科: http://baike.baidu.com/view/391054.htm 看看godoc文档,最大的数据类型就是Time了,这个Time类型最微小可以表示到nanosecond(微毫秒,十亿份之一秒)。 Time的比较是使用Before,After和Equal方法。看一眼After: ...阅读全文

Golang ReverseProxy 简单的反向代理用于内网穿透

简单的反向代理用于内网穿透 特别注意,此工具只适合小文件类的访问测试,用来做做数据调试 前言 最近周末闲来无事,想起了做下微信公共号的开发,但微信限制只能80端口的,自己用的城中村的那种宽带,共用一个公网,没办法自己用路由做端口映射。自己的服务器在腾讯云上,每次都要编译完后用ftp上传再进行调试,非常的浪费时间。 一时间又不知道上哪找一个符合我的这种要求的工具,就索性自己构思了下,整个工作流程大致为: ##工作原理 外部请求自己服务器上的HTTP服务端 -> 将数据传递给Socket服务器 -> Socket服务器将数据发送至已连接的Socket客户端 -> Socket客户端收到数据 -> 使用http请求本地http服务端 -> 本地http服务端处理相关后返回 -> Socket客户端...阅读全文

博文 2017-11-17 23:03:30 不在乎y

Go推出的主要目的之一就是G内部大东西太多了,系统级开发巨型项目非常痛苦,Go定位取代C++,Go以简单取胜(KISS)

以前为了做compiler,研读+实现了几乎所有种类的语言。现在看语法手册几乎很快就可以理解整个语言的内容。后来我对比了一下go和rust,发现go的类型系统简直就是拼凑的。这会导致跟C语言一样,需要高超的技巧才能写大程序。而rust则没有这种问题,每个部分的组成都很和谐。---------------------------------------------------------------------- Rust是挺优秀的,函数式本来就比命令式来的优雅。但同时也要看到,两种语言的定位不同。Go的定位是取代C(或C++),做所有软件的基础。而Rust想是一种划时代的语言,如果成功,将是颠覆性的。 但同时也应该看到,Go的目标简单,现在也比较稳定,可以使用了而Rust虽然很强大,但它还处...阅读全文

博文 2015-01-16 18:00:01 findumars

最全BAT算法面试100题:阿里、百度、腾讯、京东、美团、今日头条

第一:复杂度估算和排序算法(上) 1) 时间复杂度和空间复杂度 2)认识对数器 3)冒泡排序 4)选择排序 5)插入排序 6)如何分析递归过程的时间复杂度 7)归并排序 8)小和问题 第二:复杂度估算和排序算法(下) 1)荷兰国旗问题 2)随机快速排序 3)堆结构与堆排序 4)认识排序算法的稳定性 5)认识比较器 6)桶排序 7)计数排序 8)基数排序 9)数组排序后的最大差值问题 10)排序算法在工程中的应用 第三:章栈、队列、链表、数组和矩阵结构 1)栈结构 2)队列结构 3)链表结构 4)数组结构 5)矩阵结构 6)二分搜索的扩展 第四:二叉树结构 1)二叉树结构 2)二叉树的递归与非递归遍历 3)打印二叉树 4)判断搜索二叉树 5)判断完全二叉树 6)判断平衡二叉树 7)折纸问题 8...阅读全文

博文 2019-04-26 19:55:29 javaYZ

OPIPING 专业Api 管理及自动化测试工具

功能说明 支持多团队、多项目、多环境,更符合技术开发和使用场景 支持Api场景组并发测试、性能测试 通过功能权限、数据权限让您精准的控制用户的使用权限,使其尽在掌控之中 动态生成API数据,让前后端更好的协同开发,降低等待时间,提高开发效率 官方地址:https://www.opiping.com/ 操作手册:https://shuka.opiping.com/t/opiping Windows、Mac客户端演示 多团队管理 Api快速查找 Api自动化测试 Api Mock测试 常用插...阅读全文

开源游戏玩家配对项目Open Match

Google Cloud 和 Unity 联合宣布了一项名为 Open Match 的开源玩家配对项目,该项目允许游戏开发者专注于玩家配对逻辑,而无需从头开始为每个游戏构建完整的配对系统。 Open Match 项目包括三个核心组件,一个用于游戏客户端的前端 API,一个用于游戏服务器的后端 API,以及一个运行自定义配对逻辑的游戏编排器。 Open Match 使用了 OpenCensus 和 Prometheus。 除了度量标准收集和默认配置设置之外,Open Match 还提供了高度可扩展性,可自定义的配对逻辑范例,允许基于延迟,等待时间和技能级别,进行简单的游戏玩家配对。 由于 Open Match 在 Kubernetes 上运行,因此可以部署在任何公共云、本地数据中心或工...阅读全文

从nsq中学习如何优雅的退出go 网络程序

退出运行中的程序,可以粗暴的kill -9 $PID,但这样会破坏业务的完整性,有可能一个正在在执行的逻辑半途而费,从而产生不正常的垃圾数据。 本文总结在go语言中,如何能优雅的退出网络应用,涉及的知识包括:signal,channel,WaitGroup等。 从这里:https://gobyexample.com/channel-synchronization 可以简单了解到,在go中如何使用channel实现goroutines同步。 在nsq中,也使用了相同的机制,不过封装更复杂了些。我们以nsqadmin中的实现为例进行简单的分析。 代码段1(来自:https://github.com/bitly/nsq/blob/master/nsqadmin/main.go): exitChan...阅读全文

博文 2015-04-01 03:00:01 baiyuxiong

golang中的http.FileServer通常要跟http.StripPrefix结合使用

用go写一个文件服务器很简单: http.handle(“/”, http.FileServer(http.Dir(“doc”)) http.ListenAndServe(":8888”, nil) 打来localhost:8888,就能看到doc目录下的所有文件。 但如果,你想用localhost:8888/doc来显示进入文件目录,则需要 http.Handle(“/doc", http.StripPrefix(“/doc", http.FileServer(http.Dir(“doc")))) http.StripPrefix用于过滤request,参数里的handler的request过滤掉特定的前序,只有这样,才能正确显示文件目录...阅读全文

博文 2015-06-17 20:18:48 u011649436

Jenkins安装部署go项目

什么是Jenkins? Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。 它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预,有利于减少重复过程以节省时间、费用和工作量; 它需要有专门的集成服务器来执行集成构建; 它需要有代码托管工具支持,比如SVN; 官网地址地址:https://jenkins.io Jenkins的主要目标是监控软件开发流程,快速显示问题; jenkins持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,所以它有利于减少重复过程以节省时间、费用和工作量。 安装jenkins mac上安装 mac上...阅读全文

博文 2019-04-08 01:34:38 若与

Everybody Go Go Go!!!

Everybody Go Go Go!!! 一起走向通往梦想的道路 我是谁 Hello,各位大佬们,我的名字叫孙龙,在校大学生,信息与计算科学专业,热衷于编程,故创此博客,和大家一起走进有趣的编程世界进行学习和分享,新人报到,请多多关照。 学什么 C语言是母体语言,是人机交互接近底层的桥梁,学好C/C++,相当于掌握技术核心,同时,我将要学好语言、算法、数据结构、操作系统和计算机网络。 怎么学 欲戴王冠,必承其重 学习需要兴趣,兴趣是最好的老师,培养对学习编程的兴趣,不叫苦,不叫累,学好专业课的同时,用大量的课余时间来学习编程,将其养成习惯,久而久之将领悟到其真正内涵。 My World int main() { printf("---欢迎来到我的编程世界---\n"); printf(" ...阅读全文

Go 语言机制之数据和语法的设计哲学(Design Philosophy On Data And Semantics)

## 前序(Prelude) 本系列文章总共四篇,主要帮助大家理解 Go 语言中一些语法结构和其背后的设计原则,包括指针、栈、堆、逃逸分析和值或者指针传递。这是最后一篇,重点介绍在代码中使用值和指针的数据和语义的设计哲学。 以下是本系列文章的索引: 1. [Go 语言机制之栈与指针](https://studygolang.com/articles/12443) 2. [Go 语言机制之逃逸分析](https://studygolang.com/articles/12444) 3. [Go 语言机制之内存剖析](https://studygolang.com/articles/12445) 4. [Go 语言机制之数据和语法的设计哲学](https://studygolang.com/art...阅读全文

博文 2018-03-04 08:48:15 gogeof

golang实现树遍历

package main import ( "container/list" "fmt" "strings" ) type MyStack struct { List *list.List } type MyQueue struct { List *list.List } type BinaryTree struct { Value interface{} Left *BinaryTree Right *BinaryTree } type Tree struct { Value interface{} Children []*Tree } func (stack *MyStack) pop() interface{} { if elem := stack.List.Back(); elem ...阅读全文

博文 2017-12-13 02:00:00 show668

Golang的压测工具 hey

https://github.com/rakyll/hey -n 要运行的请求数。默认是200。 -c 并发运行的请求数。请求的总数不能小于并发级别。默认是50。 -q 速率限制,以每秒查询(QPS)为单位。默认没有限制。 -z 发送请求的应用程序配置。当时间到了,应用程序停止并退出。如果指定持续时间,则忽略n。例子:- z 10s - z 3m。 -o 输出类型。如果没有提供,则打印摘要。“csv”是唯一受支持的替代方案。转储文件的响应以逗号分隔值格式的度量。 -m HTTP method, one of GET, POST, PUT, DELETE, HEAD, OPTIONS. -H 自定义HTTP头。您可以通过重复标记指定所需的数量 For example, -H "Accept: ...阅读全文

阿里云OSS归档存储类型单价下调 45%

摘要: 7月21日起,阿里云对象存储OSS归档存储类型存储单价下调45%,归档解冻(Restore)时间优化到1分钟内 7月21日起,阿里云对象存储OSS归档存储类型(OSS Archive)存储单价下调45%,最短存储周期调整到60天,归档解冻(Restore)时间降低到1分钟以内,调整方案如下: 调整项 调整前 调整后 按量付费单价 0.06元/GB/月 0.033元/GB/月 最小存储周期 30天 60天 归档解冻时间 1~4小时 1分钟内 OSS有三种存储类型:标准存储类型 Standard、低频访问存储类型IA、归档存储类型Archive。OSS 归档存储类型(OSS Archive)适用于各类需要长期保存的数据:医疗影像、科研数据、金融数据、视频素材等。此类数...阅读全文

Nsq从入门到实践

当nsq跑起来之后, 我们可能会遇到以下问题 分布式部署 处理错误(何时requeue) 如何使用golang lib 抱着不应该只停留在入门的态度, 笔者粗浅的研究了一下这几个问题, 希望也对有同样疑问的人有帮助. 部署 由于NSQ的分布式网络结构, NSQD必须广播(到lookup)自己的地址并让消费者连接, 那么多个NSQD无法做透明负载均衡. 就必须为每一个NSQD分配单独的IP(或host)以保证消费者(在lookup找到NSQ节点)能够正确的连接. 这样部署起来可能会麻烦一些 但问题不大, 注意一下就好. ps: 如果有更好的方法请告诉我, 小弟感激不尽. NSQ Requeue And Backoff 建议结合官方文档来看 requeue(重试) 用于当错误发生, 需要重试时....阅读全文

一个想学golang的程序猿的吐槽

接触golang语言几天了,大部分是业余时间,看了一下入门教程,觉得语言风格相对于C来说改进很大,虽然我只学过一点C(主要用java写了几年的android),接着看了一下这本书,各种bug就不说了,当我照着书中的结构创建项目后,尽然各种编译不了,关键是网上搜索资源看到的答案简直让人崩溃,难道就没有一个程序猿写个清楚一点的教程吗?最起码对想要入门的人来说很重要,然道golang就只是给各种C或C++大神用的吗?不说golang想不想替换C或者C++,但是想取代java这样的语言就不要做梦了...阅读全文

微信小程序解码工具

项目地址起因 前段时间想学习微信小程序开发但是又没有什么深厚前端功底,看到很多很好玩的小程序想要做一个类似的学习学习,所以想着借鉴一下现有的小程序。但是苦于没有源码,抓包也没有办法获取源码。 google后知道可以用安卓模拟器安装微信然后安装小程序,然后在文件系统中找到小程序对应的wxapkg文件,拿到压缩包解压后就可以得到小程序源码。 但是压缩包是2进制文件,找了一遍后发现一个现有现有的开源项目可以直接解压小程序压缩包。废话不多说,直接开干~使用源码安装安装golang没有用过golang的人可以直接去官网下载go get github.com/sjatsh/unwxapkgcd ~/go/src/github.com/sjatsh/unwxapkg使用可执行文件下载地址使用unwxapk...阅读全文

博文 2019-01-04 01:34:44 打瞌睡滴花花

golang 处理数字3位一组展示,中间用逗号分开

package main import ( "fmt" "strings" ) func main() { strResult := NumberFormat("1234567898.55") fmt.Println(strResult) } //格式护数值 1,234,567,898.55 func NumberFormat(str string) string { length := len(str) if length < 4 { return str } arr := strings.Split(str, ".") //用小数点符号分割字符串,为数组接收 length1 := len(arr[0]) if length1 < 4 { return str } count := (le...阅读全文

博文 2017-12-28 01:21:12 18393910396

golang时间正反格式化

在工作中遇到要将时间格式化,就整理了下时间正反格式化: //当前时间戳 fmt.Println(time.Now().Unix()) //当前时间戳格式化 fmt.Println(time.Now().Format("2006-01-02 15:04:05")) //时间戳格式化 str_time := time.Unix(1389058332, 0).Format("2006-01-02 15:04:05") fmt.Println(str_time) //时间反格式化成时间戳(月份必须是month) the_time := time.Date(2016, 1, 5, 0, 0, 0, 0, time.Local) unix_time1 := the_time.Unix() fmt.Pri...阅读全文

博文 2016-07-05 05:00:10 weidao

《Docker助力应用交付“十倍速”》 9月24日时速云技术沙龙第七期【大连站】

![](http://77fkk5.com1.z0.glb.clouddn.com/upload/image/40debc00701e11e681f0525400020562.jpg) 大连,美丽的北国海港,著名的航母摇篮 港口每年的集装箱吞吐量近千万。 回溯历史,集中箱的发明,带来了航运生产力“十倍速”的改变。 Docker,目前最火的云计算技术 诞生之初,就被喻为“用代码编写的集装箱” 正在被应用交付领域越来越多的企业接受、应用。 9月24日,技术领先的企业级容器云计算服务商----时速云联合众蓝影云,将携Docker技术走进大连,举行《Docker助力应用交付“十倍速“》为主题的技术沙龙。届时,技术大咖们将与您一起分享Docker技术那些事儿,现场将会有精美茶...阅读全文