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

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入口函数...阅读全文

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

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

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

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

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

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

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

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

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

第二届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语言 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

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

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

6月29日,第十二届中国国际软件博览会(以下简称:2017软博会)在北京展览馆开幕,本届软博会由工业和信息化部与北京市人民政府主办,国务院副总理马凯莅临软博会现场,工业和信息化部部长苗圩、北京市代市长陈吉宁、北京市经济和信息化委员会主任张伯旭等领导随行。 ![1.jpg](http://studygolang.qiniudn.com/170710/fa38bd5deaf78ea0c0e68dd52f16ba8a.jpg) 中共中央政治局委员、国务院副总理马凯出席并讲话 马凯指出,软件是信息网络的核心和灵魂。全球软件业正在步入加速创新、快速迭代、群体突破的爆发期,在促进世界经济发展和人类文明进步中将发挥越来越重要的作用。中国政府高度重视发展软件产业,制定了鼓励软件产业发展的重大政策,...阅读全文

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

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

深入学习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语言编程--读后感

图灵出的《Go语言编程》拿到手后稍稍有点失望,书太薄了,才230页。阅读完后,说实话,作为Go语言入门书籍,实用性比不上邢星翻译的那本GO中文学习书。把它当作Go语言工具书,内容和老外写的又差的太远。所以,我的结论是:还行,不是最好的,也不是最差的。对于Go语言有兴趣而又不了解的朋友,值得买来看看。但对于Go语言的职业开发者,建议还是看老外写的Go语言工具书。例如,《The.Way.To.Go.A.Thorough.Introduction.To.The.Go.Programming.Language》,《Programming.in.Go.Creating.Applications.for.the.21st.Century...阅读全文

博文 2014-12-24 00:00:01 cometwo

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语言 安装编译体验

直接下载 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

上云前,先问自己五个问题

云计算,作为企业向互联网+转型的核心基础服务,正以前所未有的速度扩张。事实上,就RightScale近期公布的云报告显示,93%的企业组织中采用了一些云计算的能力。那么,如果您是一家业务稳定的公司,并被云计算“弹性、灵活、安全、低成本”的这些好处诱惑着,就可参照本文介绍的四步,清晰上云路。 第一步:先问自己5个问题,不要人云亦云 首先需要明确,不是每一家企业都需要上云,或者全面上云。云计算很美好,省钱省力,让业务更弹性灵活,可以便捷获取大数据分析能力。但云计算不是万能的,路边的煎饼摊开个微博就能营销到全国,自己买台云服务器完全没必要。 所以,在决策前,先通过5个简单的问题,看企业是否真的需要上云: 1) 你的用户是否分布在全国各地,地域跨度较大? 2) 你是否在...阅读全文

每周计划

语言 周1、3、5英语学习 周2、4、6日语学习 周日复习,并写周总结 代码 周1、3、5 review 一篇完整代码 每周一篇随笔,记录优秀的代码设计 技术文章 周2、4、6精读一篇文章,并记录读后感 周日重新阅读读后感,并写周总结 新闻 每天阅读新闻: golang 日报,并挑选文章待精读 技术、科技、财经、政治 每日零碎时间 早晨通勤时间 : 语言学习 午休时间 : 新闻阅读 工作摸鱼时间 :review代码 / 技术文章 晚上通勤时间 :review代码 / 技术文章 晚上回家 :整理一天所学,并记...阅读全文

博文 2018-10-17 02:34:39 HinaKaze

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

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 实效云计算用户组

[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

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

对称加密算法,即加密和解密使用一样的密钥的加解密算法。 分组密码(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

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

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

合约跟单软件开发技术方案,一键跟单系统开发

合约跟单软件开发技术方案,一键跟单系统开发 合约跟单软件开发模式是根据内成交量、赢利量等方面筛选出的名单,玩家看到可根据的赢利点和跟单费用,跟单费用是需要付款程序的,选择相应的系统进行自动跟单,系统跟单是跟踪所选要下的最新单,而手动跟单则需要选择跟单资产跟价止盈止损,下单手数和杠杆倍数。 而且在整个跟单系统中,究竟哪些人是交易高手,平台上也会晒出该交易者的相关数据,包括:收益率、盈亏比、资金实力、最大回撤和能力值等等。 合约跟单软件开发的核心功能: 1、正跟和反跟:正跟可以跟报单(滑点小)反跟跟成交(避免跟单先成交,指引却被撤单); 2、跟单数量设置,按比例、按最大手数 3、跟单跟单未成交的处理方式 包括多少时间撤单,价格偏差多少撤单,重新追单、取消、或保留挂单 4、一跟一,一跟多,多跟一等...阅读全文

博文 2020-08-05 11:03:26 13823153201

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

合并两个有序数组(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 三斤和他的朋友们

18.Golang设计模式之中介者模式

中介者模式 GitHub代码链接 中介者模式(Mediator Pattern)用来降低多个对象和类之间的通信复杂性。 什么是中介者模式 对象之间存在大量的关联关系,势必会导致系统结构变得复杂。若一个对象改变,还要跟踪与其相关的对象,跟着一起改变。 中介者模式提供了一个中介类,该类通常处理不同类之间的通信,并且支持松耦合,使代码易于维护。 解决了什么问题 中介者模式解决了多个类相互耦合,导致系统复杂度升高的问题。通常1.用于机场调度系统。2.MVC框架,其中C(控制器)就是M(模型)和V(视图)的中介者。 优点 降低系统复杂度 各个类之间解耦 缺点 中介者会变得庞大,复杂难以维护 代码实现 我们使用聊天室来模拟中介者模式,聊天室作为一个中介者,每个用户通过聊天室想其他用户发送消息。 1.1 ...阅读全文

博文 2020-10-10 17:32:47 ShawnLee_123

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

Golang 插入排序

func InsertSort(arr *[5]int) { for i := 1; i < len(arr); i++ { insertVal := arr[i] insertIndex := i - 1 //从大到小 for insertIndex >= 0 && arr[insertIndex] < insertVal { arr[insertIndex+1] = arr[insertIndex] //数据后移 insertIndex-- } //插入 if insertIndex+1 != i { arr[insertIndex+1] = insertVal } fmt.Printf("%d time %v\n", i, *arr) } } func main() { arr := ...阅读全文

博文 2020-04-26 13:33:11 Didier811