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

golang 编译后文件变小的方法

总有人说Go程序“好大”,一个Hello World都1M多。其实,随着程序源码越来越大,编译后的文件并非那么快速的增长,这点大小真心没必要那么在乎,又不是软盘时代。但总有一些人非得想要小点。 首先我们看一下为什么会比其他语言大些: Go 编译的可执行文件都包含了一个运行时(runtime),和我们习惯的Java/.NET VM有些类似。 运行时负责内存分配(Stack Handing、GC Heap)、垃圾回收(Garbage Collection)、Goroutine调度(Schedule)、引用类型(slice、map、channel)管理,以及反射(Reflection)等工作。Go程序进程启动后会自动创建两个goroutine,分别用于执行main入口函数...阅读全文

数据宝专场研讨会•贵安国际数字经济论坛•2017数博会圆满成功

2017年5月24日,2017数博会•贵安国际数字经济论坛•数据宝专场研讨会在北斗湾开元酒店多功能厅召开。本次数据宝专场研讨会以“共享•价值•大数据•大开放——大数据的流通与融合之美”为主题,由数据宝董事詹臻女士主持,会议分三个专题进行,分别是领导致辞、嘉宾演讲以及圆桌会议。 贵安新区管委会主任助理洛伟,国家工业信息安全发展研究中心(工业和信息化部电子第一研究所)副总经济师黄永金,中科院生物医药大数据中心主任李亦学教授,贵州数据宝网络科技有限公司董事长汤寒林,中国电信天翼征信有限公司产品总经理刘昊,中国联通智慧足迹数据科技有限公司首席营销官赵华,国家交通运输物流信息平台数据产品部总监董磊,中国电信医疗行业信息化应用(上海)基地常务副总经理谢青宇,中国金融行业自律联盟秘书长崔宏毅,江西服...阅读全文

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 郝冠伟

数据宝专场研讨会•贵安国际数字经济论坛•数博会精彩预告

2017年5月24日,贵安国际数字经济论坛数据宝专场研讨会将在北斗湾开元酒店多功能厅召开。届时,贵州省委常委、常务副省长秦如培,贵州省政协副主席、贵州省大数据发展领导小组副组长谢晓尧,中国工程院院士钟世镇等近百名领导莅临会场发言指导;中科院医学大数据、中科院国家天文台、中科院软件研究所、华为、阿里云、百度、韩国现代汽车、HTC威爱教育等在内的500名行业巨头齐聚首。 值得关注的是,2017中国国际大数据产业博览会(简称“2017数博会”)将于5月25日届时开放,于5月26日在贵阳盛大开幕,国家领导人将出席并参加开幕式。数博会论坛分为7大板块,分别为国家大数据试验区交流、数字经济、区块链开启价值互联网时代、数据共享与开放、人工智能、数字安全与风险控制、智能制造。每个板块将举办一个核心论坛...阅读全文

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

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

数据宝参展2017中国国际软件博览会

6月29日,第十二届中国国际软件博览会(以下简称:2017软博会)在北京展览馆开幕,本届软博会由工业和信息化部与北京市人民政府主办,国务院副总理马凯莅临软博会现场,工业和信息化部部长苗圩、北京市代市长陈吉宁、北京市经济和信息化委员会主任张伯旭等领导随行。 ![1.jpg](http://studygolang.qiniudn.com/170710/fa38bd5deaf78ea0c0e68dd52f16ba8a.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

go语言的init函数

go语言中init函数用于包(package)的初始化,该函数是go语言的一个重要特性, 有下面的特征: 1 init函数是用于程序执行前做包的初始化的函数,比如初始化包里的变量等 2 每个包可以拥有多个init函数 3 包的每个源文件也可以拥有多个init函数 4 同一个包中多个init函数的执行顺序go语言没有明确的定义(说明) 5 不同包的init函数按照包导入的依赖关系决定该初始化函数的执行顺序 6 init函数不能被其他函数调用,而是在main函数执行之前,自动被调用 下面这个示例摘自《the way to go》,os差异在应用程序初始化时被隐藏掉了, var prompt = "Enter a digit, e.g. 3 " + "or %s to quit." func in...阅读全文

博文 2014-10-04 19:26:31 youyou

golang源码解读之map

golang的map实现并不是像c++一样使用红黑树,而是使用了hashmap,用数组来实现。 详细的实现后续补充,这里先做个备忘。 在iterate整个map的时候,使用delete是安全的。这跟c++是不一样的,c++在delete的时候,会导致整棵树发生变化,所以不能在迭代的时候删除元素。 那为什么golang的map是安全的呢,从源码来看,golang的map使用了桶的概念,元素是被hash到桶存储,每个桶预设是存储八个kv,而且在头部有一个uint8 tophash[8]的结构,存储每个key的高八位(即hash(key) » (64 - 8)),如果该位置未被放置元素,则有一个特殊的标志Empty。在插入删除的时候,首先会比较该uint8跟hash(key)是否相等。当然,桶还利...阅读全文

博文 2014-10-04 19:26:15 weijiaen

ZT.COM交易所携手MiiX,共办2019全球黑客马拉松超级大赛

作日,ZT.COM交易所宣布将协助MiiX举办2019 MiiX 区块链 全球黑客马拉松超级大赛(北京站),同时ZT GROUP(中国) 联席CEO邹治龙也应邀成为特邀导师。本次技术大赛是由中国通信工业协会区块链专委会指导,开源中国、火星财经、TokenSky、Python中文社区、TRON、旗点咨询、GoCN、Golang、fintech4good、北大区块链俱乐部、火聘online、MPT Capital、bCamp、BCspark、陀螺财经、北京EOS、EosLists、区块链研习社、Elements Capital、AKHacks等联合发起的全球性MIIX系列技术创造赛。大赛秉持开源、协同、共享的区块链精神,邀请全球300极客、30技术社区、100Dapp团队、100技术领袖、50投...阅读全文

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

ECUG

由 ECUG 社区主办的一年一度技术盛会,参会的社区成员涵盖 Google、微软、 BAT、华为、京东、携程等知名企业技术高层以及七牛云、饿了么、PingCAP、Kylingence 等创业公司创始人。自 2007 年开始举办以来,已经有逾 4000 名技术从业者参加过 ECUG Con 。联 系 人:高女士联系电话:+ 86 150 2668 1370邮 箱:marketing@qiniu.com时 间:2020 年 1 月 4 ~ 5 日会议地址:杭州市上城区 白云路 9 号 - 江南1535扫码购...阅读全文

博文 2019-12-21 15:34:29 实效云计算用户组

第二届Gopher大会即将在北京举行,就等你来

去年我们在上海举行了第一届Gopher大会,那一次大会参会人员在500人左右,会后大家都觉得这是参加过的最实在,最物超所值,干货最多的大会。这里有去年参会的人员写的一些回顾,大家可以体会当时的情形 - http://thinkandcode.info/gopherchina2015can-hui-ji-lu/ - http://fuxiaohei.me/2015/4/29/gopher-china-2015.html - http://life.leanote.com/post/gopher-china-2015-my-golang-way 说了那么多,回到我们今年这一届的大会,因为北京可以说是中国的互联网中心,这里有着大量的Go使用者,而且我去年也答应了很多北京的同学,...阅读全文

【go语言】Goroutines 并发模式(一)

前言 由于前一阶段实习中接到的项目的告一段落,不知不觉便多出了许多空余的时间,于是就想总结一下最近因为个人兴趣而学习的一些东西。从这篇文章开始以及后面陆续的几篇关于GO语言的文章,均是博主最近对GO语言学习过程中的一些感悟、总结,类似于学习笔记的东西。记录下来并整理成博客一为对学习的知识做一个整理,二为分享出来给大家(因为国内关于GO语言的中文资料比较少),由于博主能力和知识有限,难免有所靡误,还望勘正。 由于Go最近一系列出色的表现,从一开始Go便紧紧地吸引住了我的眼球。类似于Erlang、Scala等语言,Go也是天生为并发而设计的语言,Go有着许多在原生层面对并发编程进行支持的优秀特性,比如大名鼎鼎的Goroutines、Channels、Select等原生特性。那么废话不多说,这一篇...阅读全文

博文 2014-10-04 19:26:21 何良瑞Nyanko君

chinapub读书会第3期:GO语言与Docker技术分享会

活动安排 主办方: 时间:2015年04月25日(周六) 13:00-17:30 地点:北京丰台区成寿寺路11号邮电出版大厦。乘坐300快外、特8外快,、300外到方庄桥东站下车,往南200米路西。 活动嘉宾 郝林 Gopher、高级Java软件工程师、Python程序员和Linux爱好者。目前在北京数人科技有限公司任资深技术工程师,从事大数据处理平台的研发工作。曾就职于宜信、搜狐网,并先后担任软件架构师和技术主管等职务。在互联网软件的设计和开发方面拥有丰富的实战经验。 刘斌 具有10余年软件开发经验,关注后台开发技术和各种编程语言。做过电子商务、金融、企业系统以及Android手机开发;写过Delphi,也兼做系统管理员和DBA。 沈峰 看准网数据组组长,数据工程师 活动流程 13:00 ...阅读全文

博文 2015-04-20 18:00:09 chinapub_2009

Go语言 Go加密之DES

接着RSA加密解密,我们继续来看看DES的加密解密 一、DES简介 DES(Data Encryption Standard)是对称加密算法,也就是加密和解密用相同的密钥。其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。实际运用中,密钥只用到了64位中的56位,这样才具有高的安全性。DES 的常见变体是三重 DES,使用 168 位的密钥对资料进行三次加密的一种机制;它通常(但非始终)提供极其强大的安全性。如果三个 56 位的子元素都相同,则三重 DES 向后兼容 DES。 DES加密,涉及到加密模式...阅读全文

博文 2015-06-17 23:01:48 abv123456789

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

Go1.6与JVM CMS的垃圾回收对比

自从Go1.5引入了真正的并发GC后, Go1.6进一步进行了优化,使得Go在上百G级的堆大小时依然能将STW时间控制在20ms以内: 而Java8的G1收集器,默认参数下在100G以上的heap下,会造成秒级的STW。虽然可以通过-XX:MaxGCPauseMillis调整,但是是以牺牲大量吞吐量为代价。这里浅析一下Go能做到比G1更短的STW的原因。 轮流挂起协程 JVM的CMS收集器在工作时,大致分为4个阶段: 初始标记 并发标记 重新标记 并发清除 其中1, 3 是需要STW的阶段,CMS的停顿也是由这2个阶段引发的。Go1.5中的CMS也分为这些阶段,其中1, 3同样需要STW。那为什么Go会停顿时间更少呢?原因是,Go的CMS在第3阶段并不是挂起所有goroutine,而是轮流挂...阅读全文

博文 2016-04-21 19:00:01 tracker_w

程序员的简历怎么写?

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

go语言的time包

go语言的time包 组成 time.Duration(时长,耗时) time.Time(时间点) time.C(放时间点的管道)[ Time.C:=make(chan time.Time) ] time包里有2个东西,一个是时间点,另一个是时长 时间点的意思就是“某一刻”,比如 2000年1月1日1点1分1秒 那一刻(后台记录的是unix时间,从1970年开始计算) 时长就是某一刻与另一刻的差,也就是耗时 函数 Sleep函数 time.Sleep(time.Duration) 表示睡多少时间,睡觉时,是阻塞状态 fmt.Println("start sleeping...") time.Sleep(time.Second) fmt.Println("end sleep.") //【结果】...阅读全文

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

关于GO与FFmpeg结合的问题!

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

深入学习golang(3)—类型方法

类型方法 1. 给类型定义方法 在Go语言中,我们可以给任何类型(包括内置类型,但不包括指针和接口)定义方法。例如,在实际编程中,我们经常使用[ ]byte的切片,我们可以定义一个新的类型: type ByteSlice []byte 然后我们就可以定义方法了。例如,假如我们不想使用内建的append函数,我们可以实现一个自己的append方法: func Append(slice, data[]byte) []byte { l := len(slice) if l + len(data) > cap(slice) { // reallocate // Allocate double what's needed, for future growth. newSlice := make([]b...阅读全文

博文 2014-10-04 19:26:15 hustcat

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

程序员这个行业,是一个终身学习的行业,经常会有新技术出现。我是一个很爱学习的人,喜欢尝鲜。每次想去学习一项新技术的时候,总是苦于找不到合适的入门教程。于是有了想自己写个小课系统的想法:希望能通过写一系列的文章,组织成一门小课,帮助想学习某项技术的同学快速入门。 有了这个想法之后,我开始准备搭建小课平台,一开始想的是做一个前后端分离的网站,后端用 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 艾逗笔

go语言 安装编译体验

直接下载 go的安装包,解压后,即可使用 需要配置对应的环境变量 export GOROOT=/home/go/go export GOBIN=$GOROOT/bin export GOPATH=/home/go/src export PATH=$PATH:$GOBIN:$GOPATH 比较重要的是 GOROOT 和GOPATH GOROOT 是安装包的地址,GOPATH为开发环境的地址。 在使用中 go build 文件 会编译出可执行文件 go install 会把 工程中使用的pkg编译成.a文件 go的 package查找路径 首先会从 GOPATH /src/ 中查找 然后会从GOROOT/src/pkg/中查...阅读全文

博文 2014-10-04 19:26:01 ssdxiao

golang安装手札

首先,请允许我说句脏话:Fuck you, GFW. 现在安装golang是一件麻烦的事情,因为Google悲剧了,我们无法从Golang的官网上下到源代码。而我的Ubuntu通过apt-get安装到的是1.0.2版本,编译一个开源项目时,会报sync.Pool未定义。虽然可以下载到开源项目的X86版本,但我的最终目的是在Arm上运行,因此我需要从源代码编译。 1. 找源代码 golang.org上不去,借用同事的国外代理搞到了go1.3.1.src.tar.gz,解压,编译,果断继续悲剧!看了下问题,有一个Python脚本在访问code.google.com。。。,都说Google上不去了,还访问个毛。 2. 找二进制 断续代理上golang.org,发现有二进制提供下载,用代理下个X86...阅读全文

博文 2014-10-04 19:26:11 coroutines

go语言hello.go

前言 运行环境在ubuntu,按照官方网站说明简单安装,在这就不具体说明了,安装过错中没有任何错误。下面我就按照光放网站照这写一个hello.go。 代码如下: package main import "fmt" func main(){ fmt.Printf("你好,世界") } 运行命令: 6g hello.go 6l hello.6 ./6.out 输出结果:你好,世界 运行一下命令会生成64 位的exe程序: 6l -o hello.exe hello.6 生成的文件大小有1.1MB,在window 7 32 位下运行会报如下错误: Program too big to fit memory. 下面想办法在64位操作系统下生成32程序。 找了,好久没找到,不过,除了6g,还有gccg...阅读全文

博文 2014-10-04 19:26:39 zitsing

[mongodb-10gen]ubuntu下安装方法

由于自己老是不死心,所以还是继续在UBUNTU下开始我的GOLANG,今天发现服务源很快一下子就把GO的源代码从GoogleProject上给hg回来了,所以今天才查了一下在UBUNTU下安装Mongodb-10gen的方法。其实在linux下有apt-get命令都相当的简单,唯一的需要就是要有很好的网速,如果能够FQ那是最好不过的了。 其实在mongodb官网上面有介绍,我们只要依照他的方法一步一步进行就可以完成安装了,地址如下: http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ 首先需要添加GPG键,在终端中输入: sudo apt-key adv --keyserver hkp://keyserver....阅读全文

博文 2014-10-04 19:26:24 xdotnet

日记

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

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

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

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

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

什么样的网站才能让用户更喜欢

我们每天都会访问很多网站,却很少对个别网站印象深刻。每年都会有成千上万的企业计划建站,但企业建站的满意度调查中,有很多企业对目前的网站或多或少都不太满意。我们不妨问问自己,是真正用心建站还是为了“互联网+”而“+网站”? 要想建一个成功的网站,建站之前要考虑很多因素。 1、是新建站还是改造旧站 新站的灵活性较高,一切都能重新规划;旧站可能会存在很多问题,包括以往对搜索引擎造成的不友好印象,改造要总结以往存在的问题,各个击破。 2、网站的目标用户 研究网站的核心用户对网站设计有指导性意义。比如你要做一个旅行网站,要根据产品判断受众,如果产品走的是经济实惠的路线,设计风格适宜简洁直接;如果走高端定制路线,设计应该彰显专业气质;如果走穷游/文青路线,设计风格要偏创意趣味才能吸引目光。 ...阅读全文

对称加密算法和分组密码的模式

对称加密算法,即加密和解密使用一样的密钥的加解密算法。 分组密码(block cipher),是每次只能处理特定长度的一块(block)数据的一类加解密算法。 目前常见的对称加密算法DES、3DES、AES都是属于分组密码。 DES DES,全称Data Encryption Standard,是上一代标准对称加密算法,现已不推荐使用。 密钥:DES是一种将64bit的明文加密成64bit的密文的对称密码算法,它的密钥长度是64bit(每隔7bit会设置一个用于错误检查的bit,因此实际使用密钥长度56bit)。 分组:DES是以64bit的明文作为一个单位来进行加密的,这64bit的单位称为分组。一般来说,以分组为单位进行处理的密码算法称为分组密码(block cipher),DES就是分...阅读全文

博文 2017-05-15 02:45:06 linjinhe

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

leetcode_141

Golang: 思路:这道题是我在刷题的早期遇见的题,当时的思路是用map记录跑过的点,如果有环,那么指针终归会经过map里的点。但是,这个思路不是最好的思路,很明显,快慢指针才是解决这个问题的王道。什么是快慢指针,就是双指针,一个指针每次走两步,另一个每次走一步,那么如果有环,快指针势必会追上慢指针。 小记:最近因为有其他事情,所以会耽误自己刷题,希望自己还是能尽量抽出闲暇时间来写写leetcode和算法。 代码如下: func hasCycle(head *ListNode) bool { if head==nil||head.Next==nil{ return false } pointer1,pointer2:=head,head for { if pointer2.Next!=ni...阅读全文

博文 2020-02-10 05:32:38 淳属虚构

让我们一起啃算法----合并两个有序数组

合并两个有序数组(Merge-Sorted-Array) 题干: 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组。说明:初始化 nums1 和 nums2 的元素数量分别为 m 和 n 。你可以假设 nums1 有足够的空间(空间大小大于或等于 m + n)来保存 nums2 中的元素。示例: 输入: nums1 = [1,2,3,0,0,0], m = 3 nums2 = [2,5,6], n = 3 输出: [1,2,2,3,5,6]来源:力扣(LeetCode) 这是一题关于数组的题目。目前为止讲解数组、字符串相关的题目都会引入一个解题思路: 双指针思路。其实就是想让小伙伴们培养一个习惯:面对数组、字符串类...阅读全文

博文 2020-05-11 10:32:47 三斤和他的朋友们

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