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

运维工具SmartPing

# SmartPing # SmartPing为一个各机器(点)间间互PING检测工具,支持互PING,单向PING,绘制拓扑及报警功能。 ## 功能 ## - 单向PING,反向Ping绘图 - 互PING间机器的状态拓扑 - 自定义延迟、丢包阈值报警 ## 设计思路 ## 本系统设计为无中心化原则,所有的数据均存储自身点中,默认每个Ping目标点的数据循环保留1个月时间,由自身点的数据绘制 **出PING包** 的状态,由各其他点的数据绘制 **进PING包** 的状态,从任意一点查询数据均会通过Ajax请求关联点的API接口获取其他点数据组装全部数据,绘制 出Ping曲线图,进Ping曲线图,网络互Ping拓扑图。并可以设置阈值进行报警,方便对网络质量...阅读全文

Go语言内存分配器-FixAlloc

昨天写了一篇Go语言内存分配器设计,记录了一下内存分配器的大体结构。在介绍内存分配器的核心实现前,本文先介绍一下内存分配器中一个工具组件——FixAlloc。FixAlloc称不上是核心组件,只是辅助实现整个内存分配器核心的一个基础工具罢了,由此可以看出FixAlloc还是一个比较重要的组件。引入FixAlloc的目的只是用来分配MCache和MSpan两个特定的对象,所以内存分配器中有spanalloc和cachealloc两个组件(见《Go语言内存分配器设计》的图)。MCache和MSpan两个结构在malloc.h中有定义。 定义在malloc.h文件中的FixAlloc结构如下,比较关键的三个字段是alloc、list和chunk,其他的字段主要都是用来统计一些状态数据的,比如分配了...阅读全文

博文 2014-11-13 21:58:14 skoo

整理了一份全国行政区划数据表,省市区县各级已经用 golang 做了关联,三级联动

代码如下:```package mainimport ( "database/sql" "encoding/json" "fmt" "io/ioutil" "log" "net/http" "strconv" "strings" _ "github.com/go-sql-driver/mysql")type tude struct { Lat float32 `json:lat` Lng float32 `json:lng`}type region struct { Id string `json:id` Name string `json:name,omitempty` Fullname string `json:fullname` Location tude `json:location...阅读全文

博文 2017-07-02 10:57:32 April

GO语言中container/list使用详解

go中container中list的使用详解 1. func New() *List{} 初始化一个列表,返回类型为一个list对象 a := list.New() # 在函数内部 a = list.New() 输出: &{{0xc00006a300 0xc00006a300 } 0} 2. func (l List) Back() Element{} 返回链表的最后一个元素,返回类型元列表中的元素。 x := a.Back() fmt.Println(strings.Repeat("-----------", 10)) fmt.Println(x) &{0xc00006a300 0xc00006a330 0xc00006a300 b} 3. func (l List)...阅读全文

博文 2019-05-16 14:35:23 qq5c9c828bc8d4b

Golang map 如何进行删除操作?

map 的删除操作 Golang 内置了哈希表,总体上是使用哈希链表实现的,如果出现哈希冲突,就把冲突的内容都放到一个链表里面。 Golang 还内置了delete函数,如果作用于哈希表,就是把 map 里面的 key 删除。 delete(intMap, 1) map 的删除原理 可以直接看源码。 我简单摘几行: func mapdelete(t *maptype, h *hmap, key unsafe.Pointer) { for ; b != nil; b = b.overflow(t) { for i := uintptr(0); i < bucketCnt; i++ { b.tophash[i] = empty h.count-- } } } 外层的循环就是在遍历整个 map,删...阅读全文

博文 2017-11-02 02:04:46 Cyeam

Go container包

Go container包 container/list-双向链表-List 基本的数据结构 type Element struct { // Next and previous pointers in the doubly-linked list of elements. // To simplify the implementation, internally a list l is implemented // as a ring, such that &l.root is both the next element of the last // list element (l.Back()) and the previous element of the first list // ...阅读全文

博文 2017-03-05 11:01:04 xxggy

Go语言内存分配器-MSpan

MSpan和FixAlloc一样,都是内存分配器的基础工具组件,但和FixAlloc没太大的交集,各自发挥功效而已。span(MSpan简称span)是用来管理一组组page对象,先解释一下page,page就是一个4k大小的内存块而已。span就是将这一个个连续的page给管理起来,注意是连续的page,不是东一个西一个的乱摆设的page。为了直观形象的感受一下span,还是得画个图吧,图形是最好的交流语言。 MSpan结构定义在malloc.h头文件中,代码如下: struct MSpan { MSpan *next; // in a span linked list MSpan *prev; // in a span linked list PageID start; // start...阅读全文

博文 2014-11-13 21:58:14 skoo

页面无法加载CSS样式

写了一个简单的登录页面,可是为什么加载不了外部CSS样式呢?可有人知道原因? 程序代码: package main import ( "fmt" "html/template" "net/http" "strings" "log" _ "github.com/go-sql-driver/mysql" "database/sql" ) type WebMux struct{ } func (p *WebMux) ServeHTTP(w http.ResponseWriter,r *http.Request){ switch r.URL.Path{ case "/": sayHello...阅读全文

Go 语言的数据结构 :栈与队列

在[先前的博文](https://studygolang.com/articles/12686)中,我们探讨了链表以及如何将它应用于实际应用。在这篇文章中,我们将继续探讨两个相似且功能强大的数据结构。 ## 建模操作和历史 让我们看看 Excel 或 Google 文档,他们是人类发明的最普遍的构成文件的应用程序。我们都使用过它们。 正如你可能知道的,这些应用程序有各种各样对文本的操作。 比如在文本中添加颜色、下划线、各种字体和大小,或者在表格中组织内容。这个列表很长,我们期望从这些工具中得到一个普遍的功能 —— “撤销”和“重做”已经执行了的操作的能力。 你是否考虑过让你做,你将如何规划这样的功能?下面让我们探索一个可以帮助我们完成这样一项任务的数据结构。 ![](https://raw....阅读全文

博文 2018-05-10 21:46:45 SergeyChang

六、golang中的结构体和方法、接口

结构体: 1、用来自定义复杂数据结构 2、struct里面可以包含多个字段(属性) 3、struct类型可以定义方法,注意和函数的区分 4、strucr类型是值类型 5、struct类型可以嵌套 6、go语言中没有class类型,只有struct类型 struct声明: type 标识符 struct{ field1 type field2 type } 例子: type Student struct{ Name string Age int Score int } struct中字段访问,和其他语言一样,使用点 例子: var stu Student //拿结构题定义一个变量 stu.Name=”tony” stu.Age=18 stu.Score=20 fmt.Printf(“name=...阅读全文

博文 2017-12-24 16:30:01 pyrene

【GoLang那点事】深入Go的Map使用和实现原理

#### 开篇语 > Map是一种常用的kv数据结构,程序设计中经常使用,且作为一种最基础的数据结构,很多编程语言本身提供的api都会有实现,Go也不例外,今天我们将从一下三个方面为大家分析Go中的Map。 * 什么是Map? * Go中如何使用Map? * 以及Go的Map实现机制是什么样? > 希望通过这几个方面的讲解,让大家真正理解Go的Map使用和实现。 #### 什么是Map ##### key,value存储 > 最通俗的话说Map是一种通过key来获取value的一个数据结构,其底层存储方式为数组,在存储时key不能重复,当key重复时,value进行覆盖,我们通过key进行hash运算(可以简单理解为把key转化为一个整形数字)然后对数组的长度取余,得到key存储在数组的哪个...阅读全文

博文 2019-07-27 14:56:59 SunPengWei

shuffle 洗牌算法

1.Fisher–Yates Shuffle(费雪耶兹 随机置乱算法)   算法思想就是从原始数组中随机抽取一个新的数字到新数组中。算法英文描述如下: Write down the numbers from 1 through N. Pick a random number k between one and the number of unstruck numbers remaining (inclusive). Counting from the low end, strike out the kth number not yet struck out, and write it down elsewhere. Repeat from step 2 until all the numbe...阅读全文

博文 2018-08-08 21:34:47 one_zheng

Go Modules使用教程

引入 https://talks.godoc.org/github.com/myitcv/talks/2018-08-15-glug-modules/main.slide#1 Go Modules介绍 Modules是Go 1.11中新增的实验性功能,基于vgo演变而来,是一个新型的包管理工具。 常见的包管理工具 govendor dep glide godep 这些包管理工具都是基于GOPATH或者vendor目录,并不能很好的解决不同版本依赖问题。Modules是在GOPATH之外一套新的包管理方式。 如何激活Modules 首先要把go升级到1.11。 升级后,可以设置通过一个环境变量GO111MODULE来激活modules: GO111MODULE=off,go命令行将不会支持mo...阅读全文

博文 2018-10-16 17:34:40 andyidea

Go模块简明教程(Go语言依赖包管理工具)

Go模块是Go语言的依赖包管理工具。 Go模块的使用 1、Go1.11及以后版本才能使用。 2、Go1.11需要设置环境变量 GO111MODULE 为 on(新特性开关,按照Go语言惯例,mod首次在go1.11版本中使用,go1.12及以后版本这个设置应该不会用了)。 mod是模块英文modules的简写。 列举一些常用的命令行: go help mod查看帮助。 go mod init <项目模块名称>初始化模块,会在项目根目录下生成 go.mod 文件。参数<项目模块名称>是非必写的,但如果你的项目还没有代码编写,这个参数能快速初始化模块。如果之前使用其它依赖管理工具(比如dep,glide等),mod会自动接管原来依赖关系。 go mod tidy根据go.mod文件来处理依赖关系...阅读全文

博文 2018-08-25 14:34:57 wuyumin

Go:操作注册表

package main import ( "fmt" "log" "golang.org/x/sys/windows/registry" ) func main() { key, exists, err := registry.CreateKey(registry.CURRENT_USER, "SOFTWARE\\Hello Go", registry.ALL_ACCESS) if err != nil { log.Fatal(err) } defer key.Close() if exists { fmt.Println("键已存在") } else { fmt.Println("新建注册表键") } // 写入32位整形值 key.SetDWordValue("DWORD", 0xFF...阅读全文

博文 2016-09-21 01:00:00 aqtata

如何压缩Golang 编译出的可执行文件大小

如何压缩Golang 编译出的可执行文件大小 2015-05-05 先给结论:可以减少到原来的29% 最近在写一个TLScat小工具 Github.com/mengzhuo/tlscat 源文件仅仅2KB不到,但是用 go build tlscat.go 编译出来的有4.6MB! 后来发现这个Golang的1.5才会解决的问题 Issue #6853 all: binaries too big and growing 可是,我就不信这个邪,于是搜索到了go build的一些用法 go build -ldflags "-s -w" ‘-s’ 相当于strip掉符号表, 但是以后就没办法在gdb里查看行号和文件了。 ‘-w’ flag to the linker to omit the debu...阅读全文

Google HTML/CSS代码风格指南(中文版)

Google HTML/CSS代码风格指南 修正版本 2.1 背景 本文档定义了HTML/CSS的编写格式和风格规则。它旨在提高合作和代码质量,并使其支持基础架构。适用于HTML/CSS文件,包括GSS文件。 只要代码质量是可以被维护的,就能很好的被工具混淆、压缩和合并。 样式规则 协议 嵌入式资源书写省略协议头 省略图像、媒体文件、样式表和脚本等URL协议头部声明 ( http: , https: )。如果不是这两个声明的URL则不省略。 省略协议声明,使URL成相对地址,防止内容混淆问题和导致小文件重复下载。 ...阅读全文

博文 2015-06-18 18:07:58 chajn

Goroutine 调度模型猜想

前言 近日在学习go语言,go语言的一个重大特色就是支持协程(coroutine),即用户级线程。由运行在用户态程序实现“执行体”的调度和切换(本文将一个可并发执行的逻辑单元称为“执行体”),整个过程运行在一个或多个线程上,执行体切换过程不用“陷入”内核态,因此较为轻量。 这种方式也有一定的缺点,因为协程概念提出的很早,主流语言却没有提供支持,必有原因,这个我们以后讨论。 当然,为了更好的了解goroutine,我们就有必要谈谈goroutine调度模型的实现。不过,作者是java开发人员,对分析c及汇编源码之类的事情能力有限,虽然有很多参考资料及公开的源码,分析来分析去,我也是醉了。所以在看了一些goroutine scheduler资料后,本文从另一个角度切入,描述下一个简单的协程调度模...阅读全文

博文 2015-05-04 09:00:02 qiankunli

Go 实现常见数据结构

1. [二叉搜索树](https://flaviocopes.com/golang-data-structure-binary-search-tree) 2. [字典](https://flaviocopes.com/golang-data-structure-dictionary) 3. [图](https://flaviocopes.com/golang-data-structure-graph) 4. [哈希表](https://flaviocopes.com/golang-data-structure-hashtable) 5. [链表](https://flaviocopes.com/golang-data-structure-linked-list) 6. [队列](h...阅读全文

golang 表达式

表达式 1. 关键字 2. 运算符 3. 初始化关键字 关键字是指被编程语言保留而不让编程人员作为标志符使用的字符序列。因此,关键字也称为保留字, 每种编程语言都有自己的关键字,从使用的角度看,我们可以把Go语言的25个关键字分为如下三类:1. 用于程序声明 2. 用于程序实体声明和定义 3. 用于程序流程控制的关键字类别关键字程序声明import, package实体声明和定义var,const,type,struct,func,interface,map,chan流程控制if,else,switch,case,fallthrough,default,for,range,continue,break,go,select,defer,goto,return运算符 运算符就是用于执行特定计算或...阅读全文

godep 包管理工具

godep是解决包依赖的管理工具 安装 go get github.com/tools/godep 成功安装后,在GOPATH的bin目录下会有一个godep可执行的二进制文件,后面执行的命令都是用这个,间隔这个目录加入到PATH目录中。 编译和运行 项目用godep管理后,要编译和运行项目的时候再用go run和go build显然就不行了,因为go命令是直接到GOPATH目录下去找第三方库。 而使用godep下载的依赖库放到Godeps/workspace目录下的; godep go build XXX godep中的go命令,就是将原先的go命令加了一层壳,执行godep go的时候,会将当前项目的workspace目录加入GOPATH变量中; godep save godep sav...阅读全文

博文 2016-05-26 10:00:05 me115

Go依赖管理工具 - dep

Go依赖管理工具 Go dependency management tool 环境要求 Golang >= 1.9 Dep 目前版本: dep: version : devel build date : git hash : go version : go1.10 go compiler : gc platform : linux/amd64 Latest release为v0.4.1 安装 go get -u github.com/golang/dep/cmd/dep 若$GOPATH/bin不在PATH下,则需要将生成的dep文件从$GOPATH/bin移动至$GOBIAN下 验证 $ dep Dep is a tool for managing dependencies for Go ...阅读全文

博文 2018-03-06 22:34:41 煎鱼

GDB调试Go程序进阶

目的:使用gdb附加到一个正在运行的进程上,然后做一些调试,并安全退出。 1. 修改Ubuntu配置,允许gdb附加到进程上,如何修改如下: http://askubuntu.com/questions/41629/after-upgrade-gdb-wont-attach-to-process 2. 查看进程id #ps ax 或者 #ps au 3. 启动gdb 4. 使用file命令来指定进程所联系的程序源代码和符号表,例如: file /home/yourihua/workplace/rhino/bin/console 5. attach <进程ID> 6. 打断点,如下: b /home/yourihua/workplace/rhino/src/github.com/yourihu...阅读全文

博文 2014-10-09 16:55:02 Rhino(犀牛)

用golang写一个简单的游戏

事情是这样子的,前阵子我想重新把算法学习一下,在看到动态规划的时候,莫名想到这些算法题目就跟游戏一样,每个游戏都有规则,要过关,就要在游戏规则下达到特定的目标。所以,我萌生了把算法题做成一个游戏的想法,不管什么算法都行,规则我可以自己定义。 那么,做个游戏,它总要有界面,自然我不会写gui,暂时也没有想用golang的gui库的想法。所以我的第一步是用终端先实现一个,在界面上能够显示出东西。这个要求对于golang来说一点都不高。 再来,是游戏规则的设定,这个游戏,我会分几个版本去完成它,多以第一个版本,我会设定得足够简单,规则如下:界面上会由n×m个点组成,通过键盘上的方向键控制点的移动,从起点到达终点即可完成看任务。如图: 界面.png 我们分析一下,完成这样一件事情,我们需要做的工作有...阅读全文

博文 2020-05-12 01:32:51 onepunchgo

golang对象内存分配

一、分配对象(源码) // 分配对象内存入口 func newobject(typ *_type) unsafe.Pointer { return mallocgc(typ.size, typ, true) } // 分配指定object的大小(bytes数) // 当分配的object大小 <= 32kb 使用每个P本地缓存空闲列表即可 // > 32 kB 直接堆上进行分配. func mallocgc(size uintptr, typ *_type, needzero bool) unsafe.Pointer { // 零长度对象 if size == 0 { return unsafe.Pointer(&zerobase) // 在heap上分配,则都指向预设的同一全局变量(零长度...阅读全文

博文 2019-01-07 19:34:46 神奇的考拉

morose things go by

现在可以安静一下找个时间写下这个随感了。回家半个月确实挺好,但有时也感觉自己很无聊额~有点小感冒头疼了,希望早日康复。想想怎么写来调节一下顺应即将的大三生活,端正自己的态度,大三少胡思乱想一点,少走些弯路,好好弄自己的东西... 今天刚发了课程表,列一下要学的:数据恢复与数字取证、操作系统、计算机网络、软件工程、计算机网络实验、计算机组成原理、SQL server 、现代教育技术应用、教师职业道德与专业发展,应该还有其它的还没有排出来吧。挺好,大都是计算机方面的理论,虽说实践能力不强,但会有用的吧。之前在知乎上看到有个游戏设计师、程序员阿猫回答过,(我只是截取一部分打了下来)一旦你进入真正的开发岗位,就会发现每天会面对相当多这样的问题,而这些问题的解决有赖于坚实的计算机/数理基础,需要的是对...阅读全文

博文 2015-12-21 21:00:02 zuguodexiaoguoabc

做国内的 Docker 的 “灵雀云” 获千万美元级 A 轮融资,未来将进入美国市场

灵雀云向 36 氪独家透漏,近日完成千万美元级 A 轮融资,由宽带资本领投,高榕资本跟投。 如36 氪之前报道,灵雀云在做国内的 Docker 部署平台。 究竟什么是 Docker? 灵雀云CEO 左玥概括到,比起虚拟机来说,容器技术是一种轻量级虚拟化技术,而 Docker 是在容器技术的基础上提供的标准镜像格式。也就是说,Docker 是一个有标准的容器,相当于云计算领域的 “集装箱”,可以承载后端的各种技术。 正如集装箱在运输领域起到的作用,本来运输的人是要在各种运输工具上装载各种东西的,而有了集装箱之后,只需要把东西放在集装箱里面,运输工具承载集装箱就可以了。同样的道理,之前运维人员要直接面对各种环境进行部署,如今在 Docker 这个 “集装箱” 里部署就可以...阅读全文

从零开始用golang编写一个分布式测试工具

起源 当开发http 接口的时候,往往我们会关心开发的server能承受多少压力,这时候一个比较常用的工具是 apache bench。一部分情况下ab工具确实能满足需求,但是很多时候并不能,需要分布式式测试工具。 压力测试比较关心的是产生压力、获取测试对象的如TPS、响应时延等性能数据和主机资源如cpu,memory消耗数据以定位性能瓶颈,简单的单机测试工具并不能很好的满足这些需求。 我们可以选择云平台的分布式测试工具,比如腾讯的wetest,阿里云也有类似产品。但是这种产品往往收费不菲。也可以选择类似的开源产品,比如locust。但是调研发现,这种开源产品往往比较简单,或者过于陈旧。google官网有一个压力测试例子,用的就是locust。大家可以看一下这个工具,基于python,功能非...阅读全文

GO语言标准库概览

Go标准库包含了大量包,提供了丰富广泛的功能特性。这里提供了概览仅仅是有选择性的且非常简单。本文发表后,标准库的内容还可能继续增加,因此 建议大家最好是通过在线查阅库API或使用godoc(包含在Go发布包中)来获取最新信息以及全面了解每个包所具备的功能。 exp包(试验性的)是那些未来可能被加入标准库的包起步的地方,因此除非你想参加这些包的开发(通过测试、讨论、提交补丁),否则不应该使用其 下面的包。exp包通常只存在于从Google Go源码树上签出的源码包中,但一般不会包含在预构建好的包中。其他包可以放心使用,虽然在写下本文的这一刻,很多包依旧不够完整。 Archive(归档)和Compression(压缩)包 Go支持读写tarball和.zip文件。与此相关的包为archive/t...阅读全文

博文 2015-12-03 23:00:03 u011032846

aurora: Beanstalk 消息队列服务器管理工具

![aurora](https://raw.githubusercontent.com/Luxurioust/aurora/master/aurora.png) GitHub: [github.com/Luxurioust/aurora](https://github.com/Luxurioust/aurora) ### 简介 aurora 是一个 Golang 编写的基于 Web 的 Beanstalk 消息队列服务器管理工具,单文件无需依赖其他组件,支持管理本地和远程多个队列服务器。 ### 特点 - 跨平台支持 macOS/Linux/Windows 32/64-bit - 单文件简单易部署 - 不依赖其他组件 - 支持读取配置文件方式启动 + 登陆...阅读全文

[Go语言]Windows下的注册表操作

我编写了一个包,可以操作注册表。 github.com/jthmath/winapi/reg 目前只能写入值,所以充其量算0.1版,或者说只是一个例子。以后我将逐步完善它。 package main import ( "fmt" "github.com/jthmath/winapi/reg" ) const SubKey string = "software\\123" func main() { var err error Key, _, err := reg.CreateKey( reg.HKEY_CURRENT_USER, // 项 SubKey, // 子项 0, // 保留,必须是零 "", // class,暂时不填 reg.REG_OPTION_NON_VOLATILE, //...阅读全文

博文 2015-06-17 23:07:24 jthmath

Go语言 使用CGo进行优化

载自达达的博客 前阵子我利用cgo对游戏内存数据库的数据存储方式做了优化,减少了对象数量。但是程序放到线上环境后出现了段错误,直接导致进程退出,只好临时又把优化的部分去掉,去掉后程序又继续稳定运行了两周。 优化代码撤下来后,我重新整理了代码。整理下来,我觉得对含有字符串字段的表的优化逻辑太过复杂了,并且很难控制边界情况。 这里举个例子: type MyTable struct { Name string } func InsertMyTable(myTable MyTable) { nameLen := C.size_t(len(myTable.Name)) name := C.calloc(1, nameLen) C.memcpy(name, unsafe.Pointer((*reflec...阅读全文

博文 2014-10-27 10:00:01 abv123456789

微信公众号扫描带参数二维码实现自动分组

使用微号帮渠道二维码生成功能,粉丝通过扫描二维码统计来源,并自动分组。满足企业公众号市场分析,只有已微信认证的服务号才能实现,订阅号没有生成带参数的二维码的权限。1、微信扫码关注自动打标签分组创建渠道二维码》粉丝识别标识》打标签/分组,设置成功后,粉丝扫码关注就会自动打标签分组​​​2、微信扫码关注自动修改粉丝备注创建渠道二维码》粉丝识别标识》修改粉丝备注名,设置成功后,粉丝扫码关注就会自动修改粉丝备注名​​​3、粉丝扫码自动打标签分组数据明细​​​4、渠道粉丝数据统计渠道二维码统计数据表,粉丝微信扫码关注或取关公众号都能统计监测到​​...阅读全文

博文 2019-08-01 16:53:16 gujiushu

带交互的telnet小工具,golang版

package netTools //main // import ( "fmt" "net" "strconv" "strings" "time" ) func smain() { lis, err := net.Listen("tcp", ":1789") if err != nil { fmt.Println(err) } defer lis.Close() for { con, _ := lis.Accept() go handler(con) } } func handler(con net.Conn) { defer con.Close() buf := make([]byte, 20) n, _ := con.Read(buf) fmt.Println(string(buf[:...阅读全文

博文 2016-05-05 19:00:01 fyxichen

golang数据结构之List

golang数据结构之List,实际中用得很少,这里只做研究。 package main import ( "container/list" "github.com/sanity-io/litter" ) type Thing struct { Id int Info string } // golang 双向链表结构 func main() { doubleList := list.New() doubleList.PushBack(&Thing{Id:1, Info:"hello"}) doubleList.PushBack(&Thing{Id:2, Info:"list"}) doubleList.PushBack(&Thing{Id:3, Info:"!"}) //for e := ...阅读全文

博文 2018-08-10 12:30:02 LittleLee

go语言中struct结构体的使用

一、struct的特点 1、用来自定义复杂数据结构 2、struct里面可以包含多个字段(属性) 3、struct类型可以定义方法,注意和函数的区分 4、struct类型是值类型 5、struct类型可以嵌套 6、GO语言没有class类型,只有struct类型 二、struct的定义 1、struct声明: type 标识符 struct { Name string Age int Score int } 2、struct 中字段访问:和其他语言一样,使用点例子 type Student struct { Name string Age int Score int } func main(){ var stu Student stu.Name = "lilei" stu.Age = 22 ...阅读全文

博文 2019-05-13 12:35:18 qq5c9c828bc8d4b

Python内置对象实现的方法及注意事项

![QQ截图20150928150103.png](http://studygolang.qiniudn.com/150928/e6361a28482c2d44561584940a75112b.png) Python语言中,所有的东西都是对象,因此对于python初学者来说,搞清楚python对象的具体实现非常重要。 Python中的对象主要分为类型对象和实例对象,但也不排除有同时属于类型和实例的对象,而不管是什么对象,除了内置的类型对象外,都存在于堆上,内置的类型对象则静态分配内存。下面我们就一起来看看python常见的内置对象及其实现方法吧。 1、int int这个对象比较简单,但还是需要重点了解,以便高效的实现。python首先有小整数对象。默认在[-5, 25...阅读全文

【转载】自动化测试及工具的一点理解

1、回归测试: 由于回归测试的测试目标是已有的,稳定的功能,我们会下意识的以为是不会有问题的,并且往往只需要测试一次就行,在这中情况下,如果能有一个稳定的自动化测试脚本来代替手工的操作,将极大的提高工作效率,在关注新功能的同时不会忽略回归测试。而且随着产品版本不断的迭代,叠加的功能也会越来越多,我们会更关注新功能,没有更多的精力和意识去关注既有功能是否被破坏掉了,所以自动化是不二的选择。 2、手工测试和自动化的区别: 手工测试:测试人员能很好的把握测试用例之间执行的先后顺序,一个个有序的执行测试,后执行的测试可以利用前一个测试执行后所创建的数据记录 自动化测试:需要在程序中将脚本的执行顺序显示的用代码表示出来,并且清晰的告诉计算机如...阅读全文

像Python那样跑go1的代码(Windows下双击运行)

Windows下,以".py"为扩展名的Python程序可以双击运行,用起来很爽,现在玩go语言,我也想这么玩…… 这里说说我的玩法。 示例代码(test.go): package main import ( "fmt" "time" ) func main() { fmt.Println("Test") time.Sleep(time.Duration(6) * time.Second) } Windows7 下,修改注册表: 路径:HKEY_CLASSES_ROOT\go_auto_file\shell\open\command 修改如下: "c:\go\bin\go.exe" run "%1" 现在在Windows下双击即可运行。比如示例代码的双击后运行效果: title为go.exe...阅读全文

博文 2014-10-04 19:26:49 MikeZhang

HTTP(S) 路由器fabio

fabio 是一个快速、现代、zero-conf 负载均衡 HTTP(S) 路由器,用于部署 consul 管理的微服务。 fabio 由 eBay Classifieds Group 开发, 用于处理 marktplaats.nl 和 kijiji.it 的流量。Marktplaats 所有的流量都经过 fabio ,每秒有数千个请求,分发于数个 fabio 实例。但我们并没有观察到任何延迟。 特性: * Go 语言单一二进制,没有额外的依赖。 * Zero-conf * 通过后台观察器热重载路由表 * 轮转和随机分布 * Traffic Shaping (send 5% of traffic to new instances) Graphite metrics * 请求跟踪 * W...阅读全文

从源码讲解 golang 内存分配

## 引言 golang 是谷歌2009年发布的开源编程语言,截止目前go的release版本已经到了1.12,Golang 语言专门针对多处理器系统应用程序的编程进行了优化,使用 Golang 编译的程序可以媲美 C /C++代码的速度,而且更加安全、支持并行进程。和其他“高级语言”一样,golang同样有一套自己的内存管理机制,自主的去完成内存分配、垃圾回收、内存管理等过程,从而避免频繁的向操作系统申请、释放内存,有效的提升go语言的处理性能。由于篇幅有限,本文重点针对golang1.12.6版本就内存分配情况进行一下梳理和讲解。golang的内存管理是基于tcmalloc模型设计,但又有些差异,局部缓存并不是分配给进程或者线程,而是分配给P(Processor);golang的GC是s...阅读全文

博文 2019-08-11 01:00:24 polaris