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

golang list slice 删除其中一项比对

slice可以动态添加项(使用append()函数),但是没有删除项的函数。变通方法,可以使用slice重新组合的方式删除一个或多个项,slice是引用类型,存的是指针,性能上不会有太多影响,示例如下:package mainimport "fmt"func main() { s := []int{11, 22, 33, 44, 55, 66} // 原始slice i := 2 // 待删除项索引 s = append(s[:i], s[i+1:]...) // 最后面的“...”不能省略 fmt.Println(s) // 数据结果 [11 22 44 55 66]} 有人回答的很好: 这样是可以实现。不过从slice这种数据结构来看,本身并不适合做删除操作。抛开语言,只谈数据结构,我们...阅读全文

博文 2015-06-10 19:00:01 panda1986_meng

go语言常用函数:make

创建数组切片 Go语言提供的内置函数make()可以用于灵活地创建数组切片。创建一个初始元素个数为5的数组切片,元素初始值为0: mySlice1 := make([]int, 5) 创建一个初始元素个数为5的数组切片,元素初始值为0,并预留10个元素的存储空间: mySlice2 := make([]int, 5, 10) 创建一个map myMap = make(map[string] PersonInfo) 创建了一个键类型为string、值类型为PersonInfo的map.//from:http://www.cnblogs.com/osfipin/ myMap = make(map[string] PersonInfo, 100) 也可以选择是否在创建时指定该map的初始存储能力,...阅读全文

博文 2015-07-28 03:00:00 osfipin

golang对mysql的基本操作

golang 操作mysql 导入数据库驱动 import ( "database/sql" "fmt" _ "github.com/go-sql-driver/mysql" "time" ) mysql连接配置 const ( USERNAME = "root" PASSWORD = "*******" NETWORK = "tcp" SERVER = "localhost" PORT = 3306 DATABASE = "blog" ) 建立连接 dsn := fmt.Sprintf("%s:%s@%s(%s:%d)/%s",USERNAME,PASSWORD,NETWORK,SERVER,PORT,DATABASE) DB,err := sql.Open("mysql",dsn) if...阅读全文

博文 2018-07-17 21:34:46 我的饭卡呢

等待5年,Go 2.0终于要来了!

蛰伏5年,Go Language 2.0 终于要来了!早在今年8月份,Go团队便提出了2.0版本的设计草案,包括两大主题:错误处理和泛型。而今天,团队开发人员发话了:“是时候采取行动了!”Go 1和Go 2主要的区别在于决策的制定——Go 1的诞生是一个小团队的努力,而Go 2将更受其社区的影响。目前在Go 2的提案中,大约有120个未解决的问题被标记为Go 2的提案,每一个问题都与重要的库或语言更改相关,而这些问题通常不能满足当前Go 1的兼容性。开发人员将这些提案分类为Go2Cleanup、NeedsDecision等,以便后续的执行操作。在Go语言的生态中,拥有数以万计的程序员和代码,因此,所有的决策和改变必须谨慎,以免对稳定的生态造成破裂。因此,Go团队认为,需要实施新的提案评估流程...阅读全文

golang mysql中timestamp,datetime,int类型的区别与优劣

golang time: https://golang.org/pkg/time/ golang中time包用法 http://blog.csdn.net/chenbaoke/article/details/41519193 首先 DATETIM和TIMESTAMP类型所占的存储空间不同,前者8个字节,后者4个字节,这样造成的后果是两者能表示的时间范围不同。前者范围为1000-01-01 00:00:00 ~ 9999-12-31 23:59:59,后者范围为1970-01-01 08:00:01到2038-01-19 11:14:07。所以可以看到TIMESTAMP支持的范围比DATATIME要小,容易出现超出的情况. 其次,TIMESTAMP类型在默认情况下,insert、update ...阅读全文

博文 2016-03-04 08:00:01 scut1135

golang数据类型-slice(切片)

slice介绍 数组的长度在定义之后无法再次修改;数组是值类型,每次传递都将产生一份副本。显然这种数据结构无法完全满足开发者的真实需求。在初始定义数组时,我们并不知道需要多大的数组,因此我们就需要“动态数组”。在Go里面这种数据结构叫slice,slice并不是真正意义上的动态数组,而是一个引用类型。slice总是指向一个底层array,slice的声明也可以像array一样,只是不需要长度,它是可变长的,可以随时往slice里面加数据。 初看起来,数组切片就像一个指向数组的指针,实际上它拥有自己的数据结构,而不仅仅是个指针。数组切片的数据结构可以抽象为以下3个变量: 1.一个指向原生数组的指针(point):指向数组中slice指定的开始位置; 2.数组切片中的元素个数(len):即sli...阅读全文

博文 2015-06-17 20:17:41 JesseYoung

新基建冲上风口,运维如何变革?

新基建可能是2020最热词之一。自今年3月初,中央提出要加快 5G 网络、数据中心、新能源车、充电桩等新型基础设施建设进度后,“新基建”在全社会备受关注。在前不久的两会中,不少大佬的提案中又均涉及新基建,再一次将新基建推上风口。​腾讯董事会主席兼CEO—马化腾 关键词:加快推进「云计算」等新基建、打造产业互联网“朋友圈”百度董事长—李彦宏 关键词:打造「人工智能」新基建、推进智能云工程,加速产业智能化联想集团董事长兼CEO—杨元庆 关键词:加大新基建建设「力度」、大力发展智慧经济 ......每个人对新基建的理解不同,但是有一个广泛的共识,新基建将推动经济结构转型打造新的经济增长点。So,新基建不仅仅是IT行业的“新风口”,也是IT人奋斗的“主战场”。而与之匹配的运维能力也将成为新基建能够持...阅读全文

一、Go语言的变量和常量

《Go Web 编程》《Go 语言编程》读书笔记 。 1.变量 变量是几乎所有编程语言中最基本的组成元素。从根本上说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。 1.1 变量声明 对于纯粹的变量声明,Go语言引入关键字var,而类型信息放在变量名之后,形如: var variableName type var vname1, vname2, vname3 type 示例: var v1 int var v2 string var v3 [10]int // 数组 var v4 []int // 数组切片 var v5 struct { f int } var v6 *int // 指针 var v7 map...阅读全文

博文 2015-11-10 10:00:01 chyljy

Go 语言的下一个大版本:Go 2.0 被安排上了!

今年 8 月 Go 开发团队公布了 Go 2.0 的设计草案,包括错误处理和泛型这两大主题。现在备受瞩目的 Go 2.0 又有了新动向 —— 昨日 Go 开发团队在其官方博客表示,Go 2 已经被安排上了!目前 Go 2 已进入确定变更提案的阶段,并公布了提案评估流程。废话不多说,先来看看 Go 2.0 有哪些值得关注的内容:1.最大程度保持对 1.x 的兼容,以避免分裂 Go 语言生态系统2.采用增量升级的方式,而非单独发布重大更新版本3.实施新的提案评估流程,以评估尚未解决且被标记为提案的 issue4.将会在 Go 1.13 版本中选择 Go 2 部分的提案背景早在2017年的 GopherCon 大会上,Russ Cox(Go 核心开发团队的技术 leader)就已经正式开始思考 G...阅读全文

博文 2019-06-27 20:40:13 开源中国

阿里云基础认证(ACA)考试大纲及学习资料与学习方法介绍

​阿里云基础认证(ACA)考试大纲及学习资料与学习方法介绍:阿里云基础认证介绍阿里云基础认证(ACA- Alibaba cloud Certification associate)是面向使用阿里云基础产品的专业技术认证,主要涉及阿里云的计算、存储、网络、安全类的核心产品。通过该技术认证可以有效证明该认证人员具备以下能力:具备IT、云计算及网络安全相关从业的基础知识能够根据企业的业务需求,基于阿里云的产品快速实现业务上云能够使用和操作阿里云的云服务器ECS、负载均衡SLB、对象存储OSS、云盾及云监控产品能够诊断基于阿里云基础产品构建的业务系统在运行中岀现的常见问题阿里云云计算助理工程师认证(ACA)报名入口阿里云大数据助理工程师认证(ACA)报名入口阿里云云安全助理工程师认证(ACA)报名入...阅读全文

阿里云对象存储OSS Go SDK发布了,欢迎有兴趣的Go爱好者试用~~~

阿里云对象存储OSS提供的海量、安全和高可靠的云存储服务。存储容量和处理能力的弹性扩展,真正使您专注于核心业务,广泛的应用于海量数据存储与备份,数据加工与处理,内容加速分发,业务数据挖掘分析等多种业务场景。详细介绍见[阿里云官网](http://www.aliyun.com/product/oss/?spm=5176.383663.3.14.RM2v6L)。 本次发布的OSS Go SDK包含了丰富的功能,简洁的接口,详细的例子... ## 主要功能包括: - 简洁、丰富、易用的接口,如PutObject/GetObject/ListObjects; - 并发上传/下载; - 断点续传的上传/下载; - 全面支持STS/HTTPS/CNAME访问; - ...阅读全文

阿里巴巴敏捷研发的探索与实践

今天你敏捷了吗?敏捷产品开发提倡快速迭代、小步快跑,以便更灵活地应对变化,目前逐渐演变为行业潮流。阿里巴巴内部也在不断进行敏捷实践。3月15日云效开启敏捷专场沙龙,特邀阿里巴巴敏捷教练何勉、张迎辉、张燎原为大家分享阿里巴巴的敏捷实践,从中大家可以了解到互联网产品全生命周期的探索和创新方法,看板方法如何助力阿里健康医药B2B业务发展,以及与敏捷教练一起互动交流如何将敏捷理念实施落地,支持产品和业务的成功。​适合人群:产品经理,项目经理,技术团队负责人或部门负责人时间地点:时 间:3月15日 13:30—17:00地 点: 北京市海淀区中关村大街46号院-众海加速器自驾:燕山大酒店B座斜对面,步行街内向北300米-阿里巴巴创新中心;地铁:地铁4号线,人民大学站A2 西北口,双榆树三街向东走200...阅读全文

【币码翁】IPFS官方周报第52期 ​

​ 欢迎关注IPFS官方周报!星际文件系统(IPFS)是一种通过内容和身份寻址的新型超媒体分发协议。IPFS支持创建完全分布式应用程序。它旨在使网络更快,更安全,更开放。由于这是一个非常大的范围,我们在每周调度中跟踪整个生态系统的发展。以下是自上次IPFS周报以来的一些亮点。最新的在Raspberry Pi上安装IPFS和IPFS-Cluster想过破解IPFS和物联网吗?Aadhi Manivannan最近写了一篇很棒的教程,介绍如何在Raspberry Pi上安装IPFS和IPFS-Cluster。 IPFS在野外你在Twitter上关注IPFS吗?有关IPFS的最新新闻,请查看我们的Twitter提要或查看有关Awesome IPFS的最新文章。分散式云存储正在改变互联网的面貌,Hac...阅读全文

博文 2019-07-31 16:32:48 IPFS星际特工

到下一个千亿级视频市场需要多久 趣拍和阿里云说只要3小时

“以前需要10个技术人员组成开发团队,奋战半年才能上线的视频功能,有了我们和阿里云的短视频一站式解决方案后,最少只需要1个人用3个小时就能完成。”趣拍创始人王强宇说。 作为一名拥有18年创业史的创业老兵,王强宇始终没有忽视开发者的真正需求。早在趣拍的创业初期,王强宇就观察到,对许多APP的开发者而言,他们都非常希望能上线自己的视频功能,但囿于开发能力、人员成本等劣势,只靠自己的力量还无法实现。 要将趣拍的视频能力开放,让更多开发者使用这个功能,成为王强宇推出趣拍SDK时的初衷。 受这个梦想驱动,2015年7月,趣拍SDK诞生。在没有任何市场推广的情况下,趣拍SDK的讨论群从无到有,瞬间聚集了数百开发者,吸引数百应用接入,覆盖过亿用户。 但王强宇并未就此止步,他考虑到,...阅读全文

Go编程语言前景怎么样?参加培训好就业吗

Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全、支持并行进程。不仅可以开发web,可以开发底层,目前知乎就是用golang开发。区块链首选语言就是go,以-太坊,超级账本都是基于go语言,还有go语言版本的btcd. Go的目标是希望提升现有编程语言对程序库等依赖性(dependency)的管理,这些软件元素会被应用程序反复调用。由于存在并行编程模式,因此这一语言也被设计用来解决多处理器的任务。Google对Go寄予厚望。其设计是让软件充分发挥多核心处理器同步多工的优点,并可解决面向对象程序设计的麻烦。它具有现代的程序语言特色,如垃圾回收,帮助程序设计师处理琐碎但重要的内存管理问题。Go的速度也非常快,几乎和C或C++程序一...阅读全文

博文 2019-04-03 20:34:42 QFdongdong

深度解析阿里云存储

摘要: 分析师认为,阿里云目前的存储产品系列展示了阿里云的潜力。随着时间的推移,已经成为全球超大规模云服务提供商的有力竞争者和替代者。阿里云云存储不仅拥有一系列不同的产品和功能,而且现在已经具备了相当的能力,在全球范围内提供广泛的服务。 国际知名调研机构Gartner近日公布了2017年全球云计算云存储魔力象限,阿里云的云存储强势崛起成为这一核心领域的前四名。 图片描述 图1 2017年Gartner全球云存储魔力象限图 在去年首次进入Gartner魔力象限即取得了不错的位置之后,今年阿里云存储再次强势进入公共云存储魔力象限,紧跟Google成为公共云存储厂商中在利基象限中最接近领导者象限的公共云存储厂商,而领导者象限中目前只有AWS和Azure。 图片描述 图2 ...阅读全文

Go 中的对象的生命周期

尽管 Go 语言很简单,Go 的开发人员仍然发现了许多创建和使用 Go 中对象的方法。在本篇博客中,我们将介绍对象管理的三步法 - ***实例化, 初始化,以及启动***。我们还会将其与其他的创建、使用对象的方法进行对比,并审查(评估)每种方法的优缺点。 ## 我们的目标 这似乎是一个愚蠢的问题,但是,我们在 Go 中创建和使用对象的目的到底是什么?为了与 Go 的风格的统一,我优先考虑了以下事项: * 足够简单 * 足够灵活 * 文档友好 除此之外,我们也应当说明哪些事情不是我们的目标。我们应该假设知道最终使用的用户的能力水平,所以我们就不需要提供过多的障碍。 使用我们代码的用户应该可以使用[RTFM](https://www.urbandictionary.com/define.php?...阅读全文

博文 2019-01-01 22:10:09 barryz

Minio:一个开源的AWS S3服务器,让你老爷安卓机焕发第二春

Minio 是一个 AWS S3 的开源实现,基于 Golang 开发,它是一个服务端,客户端可以通过浏览器访问。并且它提供了文件操作的 API,可以方便的为它开发更多的客户端或者使用你熟悉的编程语言访问 minio 上存储的文件。 Minio 这里我们把它当做一个私有云使用,通常它运行在 Linux 或者 Windows 服务器上,不过官方也提供了 ARM 的编译版本,那么接下来我们将 Minio 部署在 Android 手机上。 访问 Minio 的官网 https://minio.io/ 下载最新的 ARM 编译版本。 https://dl.minio.io/server/minio/release/linux-arm/minio 官方已经提供了部署方式,非常简单,但是这一步我们先稍等...阅读全文

博文 2017-07-07 08:07:09 天兵公园

解码2017双11:全球狂欢新记录背后的阿里云存储

摘要: 2017天猫双11再次刷新纪录,这背后是大数据的支撑和阿里云计算的能力的体现。手淘、天猫APP主站的所有图片和视频都存储在阿里云对象存储OSS之上,全球数以亿计的消费者,对这些商品的访问的流量和并发次数,比成交笔数高得高。 **阿里云存储支撑双11新记录** 2017天猫双11全球狂欢节,全天成交额再次刷新纪录达到1682亿元,全天支付总笔数达到14.8亿,全天物流订单达8.12亿,全球225个国家和地区的消费者参加。新零售能量全面爆发,全球超100万商家线上、线下打通,近10万智慧门店、超50万零售小店参与“全球共振”。 这背后是大数据的支撑和阿里云计算的能力的体现。手淘、天猫APP主站的所有图片和视频都存储在阿里云对象存储OSS之上,全球数以亿计的消费者,对这些商品...阅读全文

Trie树

Trie树,又称字典树,前缀树,是一种很常用的树结构,它被广泛用于各个方面,比如字符串检索、中文分词、求字符串最长公共前缀和字典排序等等。 字典树设计的核心思想是空间换时间,所以数据结构本身比较消耗空间。但它利用了字符串的共同前缀(Common Prefix)作为存储依据,以此来节省存储空间,并加速搜索时间。Trie 的字符串搜索时间复杂度为 O(m),m 为最长的字符串的长度,其查询性能与集合中的字符串的数量无关。其在搜索字符串时表现出的高效,使得特别适用于构建文本搜索和词频统计等应用 字典树的性质 根节点(Root)不包含字符,除根节点外的每一个节点都仅包含一个字符; 从根节点到某一节点路径上所经过的字符连接起来,即为该节点对应的字符串; 任意节点的所有子节点所包含的字符都不相同; 下图...阅读全文

博文 2019-05-22 17:34:48 helloGlobal

Go适合做什么?为何这么多人偏爱Go语言?

Go作为Google2009年推出的语言,其被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。 对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。 到现在Go的开发已经是完全开放的,并且拥有一个活跃的社区。 Go适合做什么?为何这么多人偏爱Go语言? 哪些大公司在使用Go语言: 1、Google 这个不用多做介绍,作为开发Go语言的公司,当仁不让。Google基于Go有很多优秀的项目,比如:https://github.com/kubernetes/kubernetes ,大家也可以在Github上 https://github.com/google/ 查看更...阅读全文

博文 2019-06-04 16:32:59 全栈弄潮儿

从Maven,Gradle到Go

为什么要有依赖管理工具? 谈依赖管理之前,我们先谈谈为什么要有依赖管理工具这东西。 我们学了一种编程语言,然后写了个“Hello World”,然后宣称自己学了一门语言,这时候确实不需要关心依赖问题。 然而,当你要写一个稍微复杂点的应用,那怕就是留言板这样的,需要读写数据库,就需要依赖数据库驱动,就会遇到依赖管理的问题了。 再进一步,你写了一个库,想共享给别人使用,更需要了解依赖管理的问题。 当然,如果项目足够简单,你可以直接将依赖方的源码放置在自己的项目中,或者将依赖库的二进制文件(比如jar,dll)放置在项目的lib里。要提供给别人呢?把二进制包提供下载或者给别人传过去。依赖管理工具出现之前大多数都是这样搞的。 但如果再复杂些,依赖库本身也有依赖怎么弄呢?将依赖压缩打包,然后放个rea...阅读全文

Go-Slice

要点 一个区间:[low:high] 两个概念:length, capability 三个函数:make(), append(), copy() 概念 Array是在声明的时候都确定了长度,之后不可更改。Slice和数组类似,也是表示一个有序元素,但这个序列的长度可变。 在Go中,Slice序列中各元素的数据类型必须一致,因为在声明slice的时候即要指定类型。 可以在Python中找到Slice,和Go的Slice基本上是一致的语义和用法。Slice中文通常被译为切片,大抵是因为可以从一个序列中存取指定的某一部分。下面是Collins词典中对于slice的解释,有助于了解该词的含义: N-COUNT (指食物切下的)片,薄片 A slice of bread, meat, fruit, o...阅读全文

博文 2016-09-02 07:00:05 u013344915

golang之array

数组 √ golang数组包含的每个数据称为数组元素(element),数组包含的元素个数被称为数组长度(length)。 √ golang数组的长度在定义后不可更改,并且在声明时可以是一个常量或常量表达式(在编译期即可计算结果的表达式)。golang数组长度是一个内置常量,可以用len()函数来获取。 √ golang数组是一个值类型,在赋值和作为参数传递时都将产生一次复制动作,因此在函数体中无法修改传入的数组的内容。 • 数组声明和初始化 ▶ 数组声明 ▪ 语法如下 // 数组声明 var array [n]Type // 数组声明和初始化 var array [n]Type = [n]Type{v1, v2, ..., vn} var array = [n]Type{v1, v2, ....阅读全文

博文 2016-02-20 03:00:04 heartchord

全面系统学测试 从小白入门到实战就业

​全面系统学测试 从小白入门到实战就业 完整无密 【点击下载】本课程为慕课网销量最高、备受好评的测试入门课程2020年全新升级版。升级课程亮点:1、测试设计、测试执行、测试总结、黑盒测试、白盒测试、自动化测试、性能测试、手机测试、面试讲解等全方位多角度进行讲解;2、辅助以支付宝、余额宝等实战项目演练,更增加主流热门电商类测试项目全流程与微信红包项目实战;3、掌握从简单业务场景到复杂业务场景下的不同测试实战技巧,满足入门+提高双重需求适合人群软件测试初学者、刚刚从事软件测试行业的新手,在校大学生、应届毕业准备从事软件测试行业,准备转行进入软件测试行业的小伙伴技术储备要求0基础入门,无论你的基础怎么样,你的背景怎么样都可以学习这门课程第1章 课程介绍本章主要介绍课程学习内容,学习收获,学习路线及...阅读全文

golang 写文件--详细解释

1,不覆盖指定的文件 先看代码怎么写,下面再具体解释. func writeToFile(msg string) { f, err := os.OpenFile("/home/mingbai/del/koala.log", os.O_WRONLY&os.O_CREATE, 0666) if err != nil { log.Println(err.Error()) } _, err = f.Write([]byte(msg)) if err != nil { log.Println(err.Error()) } f.Close() } OpenFile 这个函数不那么好理解,解释一下. 第一个参数 就是文件路径. 第二个参数是一个 文件打开方式的flag是读是写 还是读写;是追加还是清空等,...阅读全文

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

Docker收购 Tutum,进一步完善容器生态

应用程序开发领域最近颇为热闹,最近两年Docker在该领域的热度在持续上升,这家公司的估值已经超过十亿美元,跻身独角兽俱乐部。它的客户不仅有众多科技公司,还包括投资公司高盛(Goldman Sachs),同时它还与Amazon、Microsoft等科技巨头建立了合作伙伴关系。尽管已经有超过15万的应用运行在Docker容器上,要说服大公司使用docker构建,尤其是运行app,仍然需要一些时日。 上周三,Docker宣布收购初创公司Tutum,这一举动促使docker向稳定性的目标更进一步,不管是应用在开发还是生产环境的稳定性。此举意味着Docker正在慢慢释放四月份融到的9500万美元,通过收购的方式将自身业务的短板补上,这次主要体现在应对生产环境上。具备应对生产环境的能力以后,Do...阅读全文

学习go语言能做什么样的工作?

载请注明出处:www.oldboyedu.comGo语言主要用作服务器端开发,其定位是用来开发“大型软件”的,适合于很多程序员一起开发大型软件,并且开发周期长,支持云计算的网络服务。Go语言能够让程序员快速开发,并且在软件不断的增长过程中,它能让程序员更容易地进行维护和修改。它融合了传统编译型语言的高效性和脚本语言的易用性和富于表达性。Go语言作为服务器编程语言,很适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等;网络编程方面,Go语言广泛应用于Web应用、API应用、下载应用等;除此之外,Go语言还可用于内存数据库和云平台领域,目前国外很多云平台都是采用Go开发。Go语言成功案例Nsq:Nsq 是由Go语言开发的高性能、高可用消息队列系统,性能非常高,每天能处理数十亿...阅读全文

博文 2018-11-09 16:36:01 大数据hadoop

Golang WebAssembly 前端开发 - 2. Golang/JS 交互.md

Golang 标准库中的 syscall/js 包提供了一系列接口。其中 js.Global() 返回一个 js.Value 类型的结构体,它指代 JS 中的全局对象,在浏览器环境中即为 window 对象。可以通过其 Get() 方法获取 window 对象中的字段,也是 js.Value 类型,包括其中的函数对象,并使用其 Invoke() 方法调用 JS 函数。 另一方面,可以使用 js.Value 类型的 Set() 方法向 JS 中注入字段,包括用 js.NewCallback() 封装的 Golang 函数,这样就能在 JS 中调用 Golang 的函数。Golang 函数必须是 func(args []js.Value) 形式的,使用 args 参数接收 JS 调用的参数,且没...阅读全文

博文 2019-01-02 23:34:44 Platanuses

Go性能优化技巧1/10

字符串(string)作为一种不可变类型,在与字节数组(slice, [ ]byte)转换时需付出 “沉重” 代价,根本原因是对底层字节数组的复制。这种代价会在以万为单位的高并发压力下迅速放大,所以对它的优化常变成 “必须” 行为。 首先,须了解 string 和 [ ]byte 数据结构,并确认默认方式的复制行为。 ![source](http://studygolang.qiniudn.com/160428/a01e98e972abb87f20d0dc9edaa1fd17.jpg) ![gdb](http://studygolang.qiniudn.com/160428/4069f099cbb9753061fb4acf82227a46.jpg) 动态演示: [https://as...阅读全文

迈向Go 2的下一步

Go 2 又有进展了,近日 Go 团队在博客公布了关于 Go 2 下一步的计划。根据此前的报道,Go 2 并非一个单独的重大更新版本,而是通过“增量(incremental)更新”的方式以逐渐抵达 "Go 2.0",所以期间的版本都能看到 Go 2 的影子。当前状态Go 团队表示正准备推出 Go 1.13,有望在今年 8 月初发布。经历长时间的开发后,这会是首个包括对语言特性进行具体更改的重要版本,而不仅仅是针对规范的小调整。为了实现这些变化,Go 团队从一小系列可行的提案开始,这些提案很大一部分来自 GitHub 中被标记为提案的 issue 列表。此文讲述过关于提案新的评估流程,团队希望所选择的提案对语言的改动较小,而且几乎没有争议,这样是为了保证经历完全程后,最终能实现这些提案。另外,...阅读全文

博文 2019-06-27 20:42:23 开源中国

区块链100讲:Hyperledger Fabric 中的链码(智能合约)

image 1 链码概念 网络运行环境我们已经启动完成,现在我们从开发者的角度来认识一下完成交易所必须的智能合约(在 Hyperledger Fabric 中被称之为 Chaincode,也就是链上代码)的相关知识,以便于理解账本中的数据到底是通过什么方式进行操作。 Chaincode:链上代码,简称链码,一般是指由开发人员使用Go语言(也支持Java等语言)编写的应用程序代码,提供分布式账本的状态处理逻辑。链码被部署在Fabric的网络节点中,能够独立运行在具有安全特性的受保护的 Docker 容器中,以 gRPC 协议与相应的 peer 节点进行通信,以操作(初始化或管理)分布式账本中的数据。可以根据不同的需求开发出不同的复杂的应用。 链码分类 在 Hyperledger Fabric ...阅读全文

博文 2018-12-01 22:35:05 宇宙永恒

阿里云自研云数据库POLARDB,未来企业的数字化答案

在2017年的杭州云栖大会上,阿里云总裁胡晓明做了题为“智能计算,为未来而生”的主题演讲,在众多内容中,阿里云的自研数据库产品POLARDB,引发了广泛关注。 image 从上个世纪60年代诞生开始,数据库就永久的改变了人类对数据的管理和认知,陆续出现今日的DB2 、Oracle、Informix、MySQL等大玩家,现在,从登录淘宝购物到在社交网站上高谈阔论,背后都离不开数据库的支撑。 数据库,无处不在。 假如要详细的说清楚阿里云为什么要选择自研数据库这条路,大概可以从以下三个方面展开。 数据库已经处于不得不变革的时代 中国数据库第一次规模爆发是在电信行业,1995年,为了解决计费计量等问题,中国开启了第一次大规模的数据库建设。然而在中国数据库长达40多年历史中,自...阅读全文

Go1.7改善了编译速度并且会生成更快的代码

Go1.7的开发周期正在接近它的下一个里程碑,Go的提交者Dave Cheney报告了子即将发布的版本中,团队成员在语言工具链上的努力。 Cheney称,基于当前的开发状态,Go1.7将会很容易就成为最好的Go发布版本。提升工具链的努力主要聚焦在如下两个方面: 编译和链接的时间; 代码生成。 当谈到编译时间,Go编译器自从C转到了Go的影响而一直以来的较慢的性能。这个问题已经被讨论很多次并且最近的完成的工作目标就是减少编译器内存使用来改善链接时间。这项改进和Go1.5.3相比大约减少了20-30%的总编译时间,如下图所示: 代码生成,如上文所述,是Go1.7的另一个主要关注点。新的后端改用SSA,和LLVM以及其他编译器着的一样,以启用代码生成的很多优化。这些优化包含更好的无用代码的消除,寄...阅读全文

空结构体

空结构体 这篇文章探讨了我喜欢的Go数据类型,空结构体。 空结构体是一个没有field的结构体类型。这里有几个例子,有命名和匿名形式: type Q struct{} var q struct{} 所以,如果空结构体没有成员,我们该怎么使用它? width 在深入研究空结构体本身前,我想简要讨论下width。 术语width来自于gc编译器,尽管它的词源可能追溯到几十年年。 width描述了类型实例占用的字节数目。因为一个进程的地址空间是一维的,我认为witdh比size更合适。 width一个类型的属性。因为Go程序的每个值都有一个类型,值类型定义了它的witdh,一般是8比特的倍数。 我们可以发现任何值的宽度,它的类型的width使用unsafe.Sizeof()函数: var s st...阅读全文

七牛云智能日志管理平台正式发布

七牛云智能日志管理平台实现了数据的全生命周期智能管理。 适用于数据中心监控、应用质量管理、统一日志管理、物联网数据监控等典型应用场景,并提供一系列行业解决方案。 致力于让用户以最低的心智负担,最佳的体验,最快的速度获得最大的价值。 推荐阅读: 陈超:七牛云智能日志管理平台的应用与设计 扫码立即了解智能日志管理平...阅读全文

《Golang 入门系列五》golang的常量、变量、数组

前言:本文主要介绍常量和变量的使用,以及关于变量的可见性规则、引用类型和值类型的区别。 一、常量 常量表达式的值在编译期计算,而不是在运行期。常量的值不可修改,这样可以防止在运行期被意外或恶意的修改。 1.1 常量的声明 常量的定义格式: const identifier [type] = value 显式定义常量: const a string = "Tom" 隐式定义常量:(这里用了类型推导) const a = "Tom" 多个相同类型常量定义: const first_name, last_name = "T", "om" 示例: package main import ( "fmt" ) const first_name, last_name = "T", "om" func ma...阅读全文

博文 2018-03-11 22:33:05 IT--小哥

怎么调用Service生命周期中 onStartCommand方法的返回值 ?

在Android开发中,调用Context的startService方法启动Service的生命周期时,如果Android面临内存匮乏,可能会销毁掉你当前运行的Service,然后待内存充足的时候可以重新创建Service,Service被Android系统强制销毁并再次重建的行为依赖于Service中onStartCommand方法的返回值。 而Service onStartCommand方法中,常用的返回值主要有:START_NOT_STICKY、START_STICKY和START_REDELIVER_INTENT三种,这三个值都是Service中的静态常量。下面小编就和大家分享下这三种返回值的具体的含义及使用情况。 START_NOT_STICKY ...阅读全文

HTML5中的storage 如何使用?

HTML5中,我们常常用到storage,那这个storage到底是什么鬼?有什么用呢? 其实,storage是个很简单的东西,只要熟悉JavaScript中对象的童鞋,看完小编本文的分享,对storage的概念及用法应该都能掌握个七七八八了。 在HTML5中,你可以吧storage 想象成是储存在客户端(浏览器)中的一些 javascript 对象,那么有什么用呢?举个简单的例子,百度搜索会把你每次的搜索关键字用 storage(localStorage) 存储下来,那么下次你再搜索相同的内容的时候,它会优先将你曾经搜过的内容进行下拉展示。 关于 storage 的内容,可以用 chrome 下的 Resources 面板进行查看。 ![1.png](http://st...阅读全文

golang 用 crypto/bcrypt 存储密码的例子

安全存储用户密码的原则是:如果网站数据泄露了,密码也不能被还原。 以前常用简单的方式是通过md5 多层加密及加盐。比如: md5( md5( password + '用户注册的时间戳' )[8:20] ) 这种可以在安全度不够高的情况下使用,下面介绍一种较为安全的加密方式,使用GoLang golang.org/x/crypto/bcrypt 模块。 golang.org/x/crypto模块官方文档:https://godoc.org/golang.org/x/crypto/bcrypt package main import ( "fmt" "golang.org/x/crypto/bcrypt" ) func main() { passwordOK := "admin" passwor...阅读全文

博文 2019-04-12 11:34:44 CaiGuangyin

阿里云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)适用于各类需要长期保存的数据:医疗影像、科研数据、金融数据、视频素材等。此类数...阅读全文

mysql连接池不能回避的wait timeout问题

感谢我们的木木同学给了我写这篇文章的灵感和机会。起因我们的项目组一直在使用albianj作为开发框架在开发应用。使用至今倒也是没有出现很大的问题,但最近加过监控的接口基本上都会在使用一段时间后,突然之间执行数据库操作变得很慢。虽然会变慢,但持续的时间比较短,一般1分钟左右,然后会自动恢复正常。但是过了一段时间,这个现象又会出现,周而复始。从监控看,发生的时间点并无规律,有的时候一天发生3次,有的也会有4-5次。虽然从规律上并无法去查找,那就只能从别的地方想办法:增加一些详细的日志,从日志上看一下问题所在。详细日志版本刚刚上去,立刻就发生问题了。如下图:看一下左下角的曲线图,突然飙高,然后在1500ms的高位不下来。经过查找日志(PS:sorry。写文章的时候日志已经被自动清除,没法截图了),...阅读全文

博文 2017-09-05 05:41:29 94geek的大嘴

CNCF 首个云原生存储项目ROOK

Rook将文件、数据块和对象存储系统引入到Kubernetes集群,与其他正在使用存储的应用程序和服务一起无缝运行。通过这种方式,云原生集群可以在公有云和本地部署中自给自足并且具备可移植性。该项目的开发目的是使企业能够通过动态应用编排,为在本地和公有云环境中运行的分布式存储系统实现数据中心现代化。 与传统的建立一个需要多年才能成熟的存储系统不同,Rook专注于Ceph这样经过实际测试的存储系统转变成一系列在Kubernetes上无缝运行的云原生服务。Rook深入Kubernetes,为安全、策略、配额、生命周期管理和资源管理提供无缝的体验。 云原生初创公司首席执行官兼Rook项目的开发人员Bassam Tabbara表示,开源软件意味着存储密集型工作负载不再需要在云原生环...阅读全文

Golang(Go语言)内置函数之append

append主要用于给某个切片(slice)追加元素 如果该切片存储空间(cap)足够,就直接追加,长度(len)变长;如果空间不足,就会重新开辟内存,并将之前的元素和新的元素一同拷贝进去第一个参数为切片,后面是该切片存储元素类型的可变参数 基础用法: slice := append([]int{1,2,3},4,5,6)fmt.Println(slice) //[1 2 3 4 5 6] 第二个参数也可以直接写另一个切片,将它里面所有元素拷贝追加到第一个切片后面。要注意的是,这种用法函数的参数只能接收两个slice,并且末尾要加三个点 slice := append([]int{1,2,3},[]int{4,5,6}...)fmt.Println(slice) //[1 2 3 4 5 6...阅读全文

博文 2016-02-23 15:00:03 QQ245671051

golang 执行 command

```golang```中会经常遇到要 fork 子进程的需求。go 标准库为我们封装了 ```os/exec```标准包,当我们要运行外部命令时应该优先使用这个库。这里我简单结合```context``` 和 ```Cmd``` 模块写一个通用的执行 command 方法。代码如下: ```go package main import ( "context" "os/exec" "syscall" ) func RunCmd(ctx context.Context, cmd *exec.Cmd) error { cmd.SysProcAttr = &syscall.SysProcAttr{ Setpgid: true, } if err := cmd.Start(); err != nil...阅读全文

Golang单例模式

单例模式,是一种常用的软件设计模式,在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。 1. 懒汉模式(Lazy Loading) 懒汉模式是开源项目中使用最多的一种,最大的缺点是非线程安全的 type singleton struct { } // private var instance *singleton // public func GetInstance() *singleton { if instance == nil { instance = &singleton{} // not thread safe } return instance } 2. 带锁的单例模式 type...阅读全文

博文 2017-10-13 10:04:48 iCaptain

Go语言中的运算符

## 1 概述 Go语言提供了,算术,关系,逻辑,位,指针,赋值运算符。本篇整体说明一下。 ## 2 算术运算 * \+ 相加 * \- 相减 * \* 相乘 * / 相除 * % 求余 * ++ 自增 * \-\- 自减 几个细节,需要留意一下。 * 整数与浮点数进行运算,会将整数转化为浮点数,再运算。 * 两个整数相除,结果是整数,取整数部分。5/3 结果会是 1。 * 求余,如果被除数或除数存在负数,那么余数与被除数保持一致。此处是求余不是取模。 * ++/--,不区分前后,只有变量后的语法,就是 v++。同时++/--构成语句而不是表达式,意味着不能直接赋值。 ## 3 字符串连接运算 + +运算符,也可以完成字符串的连接运算。 ``` "Hello" + " " + "Hank!"...阅读全文

博文 2018-10-30 22:02:07 hanzkering

双十一生态狂欢节,三招教你购买超值云存储

10月24日阿里云双十一生态狂欢节盛大开幕,此次阿里云存储系列产品也带着云存储的各路看家产品想用户诚意献礼,双十一购买如何能够更实惠,小编为大家解决运存粗产品的购买攻略: 攻略一:10.24-11.10充储值卡•享返券•抽大奖 双十一预热活动已经正式拉开帷幕,首次购买储值卡,即可获得10%-15%的代金券返还,储值卡可用于新购、续费、升级阿里云网站云产品,包括包月包月产品和按量付费产品。储值卡有效期为四个月,除去双十一当天的折扣产品,如果您根据按量购买存储产品,也已经是8.5-9折了有木有!只要购买储值卡,即可100%获得抽奖机会,11,111,1111元代金券返现,千万不要错过呀。 攻略二:11.11狂欢节,三种存储产品聚献礼 双十一当天, 对象存储OSS...阅读全文