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

goLang 操作windows注册表

goLang这种神器来说操作系统数据应该是最简单的,群里面有个朋友在问这样的一个问题。他在操作的时候提示权限不足,我在后面的测试的时候发现这个问题的根源 package main import ( "fmt" "log" registry "github.com/golang/sys/windows/registry" ) func main() { k, err := registry.OpenKey(registry.LOCAL_MACHINE, `SAM\XIAO`, registry.ALL_ACCESS) if err != nil { log.Fatal(err) } defer k.Close() s, _, err := k.GetStringValue("x") if er...阅读全文

博文 2016-10-05 15:00:02 liangguangchuan

vim(三)golang代码跳转配

在golang的代码里跳来跳去。。。。 godef 安装 跳转是通过godef实现,godef的安装目录一般是$GOBIN,只要让godef命令在$PATH下即可 godef 命令安装: go get -v github.com/rogpeppe/godef go install -v github.com/rogpeppe/godef vim插件安装 ~/.vimrc配置,用plugininstall安装插件 Plug 'dgryski/vim-godef' 配置 快捷键设置 使用 c-] 代替 gd 进行跳转 文件 ~/.vim/bundle/vim-godef/plugin/godef.vim中添加下面两行 autocmd FileType go nnoremap g...阅读全文

博文 2018-08-08 21:30:01 linengier

Go语言基础入门--if,for,range,switch

流程控制 这节主要记录的是编程语言中处理逻辑结构的流程控制 基本上流程控制语句启3个作用: 选择,根据条件跳转到不同执行序列 循环,反复执行某个序列 跳转,根据条件返回到某执行序列 Go语言支持如下的几种流程控制语句:  条件语句,对应的关键字为if、 else和else if;  选择语句,对应的关键字为switch、 case和select(将在介绍channel的时候细说);  循环语句,对应的关键字为for和range;  跳转语句,对应的关键字为goto。 Go语言还添加了关键字:break, continue, fallthrough。我们在实际开发中要灵活运用这些关键字以增加代码的健壮性 if...else if...else if a < 5 { return 0 }...阅读全文

博文 2015-04-22 15:00:24 chenqijing2

beego分页类

go count, _ := models.M("logoperation").Alias(`op`).Field(`count(op.id) as count`).Where(where).Count() if count > 0 { pagesize := 10 p := tools.NewPaginator(this.Ctx.Request, pagesize, count) log, _ := models.M("logoperation").Alias(`op`).Where(where).Limit(strconv.Itoa(p.Offset()), strconv.Itoa(pagesize)).Order(`op.id desc`).Select() this.Data["d...阅读全文

博文 2015-06-05 11:00:06 别人说我名字很长

Go语言实现跳表(SkipList)

跳表(skiplist)在redis/levelDB中属于核心数据结构,我简单粗暴的用Golang实现了下。 就我的简单理解来说,就一个普通的链表,在insert时,通过Random_level(),把一层变成很多层, 越上数据越小,跨度越大。 查找时从上往下找,如果在一层没找到,在下一层继续时,以此节点作为起始, 继续查找,是一种用空间换时间的方式。 测试代码: package main //SkipList //author:Xiong Chuan Liang //date:2014-1-28 import ( "github.com/xcltapestry/xclpkg/algorithm" ) func main() { slt := algorithm.NewSkipList() ...阅读全文

博文 2015-06-17 23:07:41 xcltapestry

人工智能通识DBD-2019年4月汇总

欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 0403软件技术-零基础-MD5加密处理和自动跳转 0402 软件技术-零基础-Golang操作Cookie 0401 软件技术-零基础-Golang注册验证与忘记密码 0401 软件技术-零基础-Golang用Hotmail发送验证邮件 欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】 每个人的智能新时代 如果您发现文章错误,请不吝留言指正; 如果您觉得有用,请点喜欢; 如果您觉得很有用,欢迎转载~ EN...阅读全文

博文 2019-04-05 02:34:40 zhyuzh3d

Golang 计算目录中代码的行数

程序名字 countline os 包来获取运行参数 运行的时候要提供两个参数,一个是目录,一个是扩展名 如: countline . go 没有运行参数的就退出程序 if len(os.Args) != 3 { fmt.Println("countline [Dir] [extention]") return } 计算文件有多少个 ‘\n’ func countFileLine(name string) (count int64, err error) { fmt.Println("count file:", name) data, err := ioutil.ReadFile(name) if err != nil { return } count = 0 for i := 0; i <...阅读全文

博文 2015-06-17 20:00:58 juxuny

Go语言实战笔记(三)| Go Doc 文档

《Go语言实战》读书笔记,未完待续,欢迎关注公众号flysnow_org,第一时间看后续笔记。 对于协作开发或者代码共享来说,文档是一个可以帮助开发者快速了解以及使用这些代码的一个教程,文档越全面,越详细,入门越快,效率也会更高。 在Go语言中,Go为我们提供了快速生成文档以及查看文档的工具,让我们可以很容易的编写查看文档。 Go提供了两种查看文档的方式,一种是使用go doc命令在终端查看,这种适用于使用VIM等工具在终端开发的人员,它们不用离开终端,既可以查看想查看的文档,又可以编码。 第二种方式,是使用浏览器查看的方式,通过godoc命令可以在本机启动一个web服务,我们可以通过打开浏览器,访问这个服务来查看我们的Go文档。 从终端查看文档 这种方式适用于在终端开发的,它们一般不像离开...阅读全文

博文 2017-03-09 15:52:22 飞雪无情flysnow_org

go的25个关键字

go的25个关键字: break default func interface select case defer go map struct chan else goto package switch const fallthrough if range type continue for import return var 关键词解释 1.break break 用于跳出循环 2.default 用于选择结构的默认选项(switch、select) 3.func 函数定义 4.interface 定义接口 5.select go语言特有的channel选择结构 6.case 选择结构标签 7.chan 定义channel 8.const 常量 9.continue 跳过本次循环 10.d...阅读全文

博文 2019-01-31 18:31:04 qq_27373475

用Golang写一个搜索引擎

用Golang写一个搜索引擎 猜你喜欢 golang入门-- 一个2D的图形库学习 golang入门--一个简单的http client golang的第一个deadlock LiteJob,一个Golang的本地任务调度器 再次自我黑客马拉松--不用第三方库实现一个基于golang的web service 如何利用golang 反射值来定义一个变量 用Golang写一个搜索引擎 用Golang写一个搜索引擎(0x01) 用Golang写一个搜索引擎(0x02) 用Golang写一个搜索引擎(0x03) 前面已经说了倒排索引的基本原理了,原理非常简单,也很好理解,关键是如何设计第二个倒排表,倒排表的第二列也很好设计,第一列就是关键了,为了满足快速查找的性能,设计第一列的结构,我们需要满足以下...阅读全文

博文 2016-04-14 17:00:04 daisongwan

第三方登录对接(一)

这里对接的是自己公司的 open 平台,但是会开放到外部供其它公司调用。所以授权服务器是 open 平台,下面授权服务器将统一称为平台服务器。 使用的是 Auth2.0 的标准(授权码模式),和微信一致,所以其实本质上是通用的,Auth2.0 介绍可以直接看这里,这篇已经讲得很通俗易懂,所以本文不再赘述。 项目是采取前后端分离的方式,前端主要是 vue+node,node 作为中间件,后端是 golang。 以下的代码都是代码段,把最关键的部分抽出来了,虽然不是完整的代码,但是已经足够能说明了。 现在讲一下步骤(每步之前都先介绍参数含义): 第一步:申请权限 别误会,这里的申请权限并不是直接申请就能直接请求用户授权信息了,这里是为了去平台申请一个唯一的ID(client_id)和秘钥(cli...阅读全文

博文 2017-09-14 05:04:59 吃柠檬的小刺猬

vscode-golang跳转定义无效问题

问题发现: 本来可以进行"ctrl"+点击或者F12,进行跳转定义的方式,突然失效了 问题分析: 1.辅助工具是否关闭 解决方案,进入首选项,设置,查找go.docsTool,选项选择为 gogetdoc,这一步可能会提示你没有安装gogetdoc,那就 go get -u -v github.com/zmb3/gogetdoc image.png 结果:测试跳转,还是不行 2.判断工具是否有效 解决方案:资料显示,方法确实没有错,但是我注意到了一点,其中的一句话 image.png 他的意思是,这个工具,在使用语言服务器时,不适用。怀着试一试的心情,去找找这个东西,慢慢向下找。哎呀,还真有哦,然后把这个取消掉。它会提示你重启生效,然后重启,问题解决。~~~ image.png 只为了解决问...阅读全文

博文 2019-10-10 22:33:02 aside section ._1OhGeD

【阿里巴巴 - 系统软件事业部招聘】- 长期有效,可年后入职

语言:Java/Go, C/C++优秀者也非常欢迎 工作经验:3年+ BASE: 主要是杭州, 北京/上海/深圳/美国硅谷也有 这里贴出来两个链接,供有兴趣的同学围观一下: [系统软件事业部-混部调度架构师](http://alibaba.tupu360.com/social/position?pid=291142&pCode=PfkNYpL1OAZIBeAYsULIKA%3D%3D) [系统软件事业部-计算存储分离架构开发专家](http://alibaba.tupu360.com/social/position?pid=281919&pCode=oXMFqeSO3M2AAv624kMT8w%3D%3D) **简单来说:** 如果你对**分布式存储*...阅读全文

Golang绑定Lua脚本,小小封装一下

好吧,我承认我有点无聊! 原来的时候,自己用C写过一个小东东,里面集成了lua脚本,lua主要用于配置系统,感觉很不错。 最近折腾了一段时间的Golang,写代码的感觉,的确比C爽,所以想着用Golang写个爬小说的稍微通用的爬虫,基本功能搞定后,发现配置还是用lua比较方便,便试着封装一下lua c-api的bindings,整了半天,发现挺累的,就去github搜了下,发现了几位前辈写的东东,但是感觉都不太满意,最后终于通过golang官网找到了这个。 恩,github.com/aarzilli/golua,这个封装,相对完整。试用了一下,和C-API基本一致,问题是,从配置文件里面取个东东,依然和C-API一样,繁琐无比。哎,之后只能自己再封装一下算了。整了2小时,感觉不错,读取基本配...阅读全文

博文 2015-06-17 20:01:46 u013125772

[翻译]Go 和汇编

使用 cgo 让 Go 跟 C 一起工作已经不是啥稀奇的了。有大量的第三方包直接对 C 的库做了封装,提供给 Go 使用。从 Go 项目本身的代码中可以看到,不但有 C 代码,还有汇编代码存在。那么在自己的项目中是否能跟汇编结合呢?这篇文章完整并清晰的解说了如何让 Go 和汇编协同工作。真得性能敏感?上汇编吧!! ————翻译分隔线———— Go 和汇编 关于 Go,我最喜欢的部分之一就是它那坚定不移的实用主义线路。有时我们过于强调语言的设计,而忘记了编程所包含的其他内容。例如: Go 的编译器很快 Go 有着强大的标准库 Go 可以工作在多种平台下 Go 有着可以通过命令行/本地 Web 服务/ Internet 访问的完整文档 所有 Go 的代码是静态编译的,因此部署的问题微不足道 全部...阅读全文

博文 2014-10-09 16:18:21 mikespook

win下gosublime配置ctag

ctags(Generate tag files for source code)是vim下方便代码阅读的工具。尽管ctags也可以支持其它编辑器,但是它正式支持的只有VIM。并且VIM中已经默认安装了Ctags,它可以帮助程序员很容易地浏览源代码。 参考: http://baike.baidu.com/view/9340968.htm 环境准备: 1、安装 sublimetext 3 下载安装最新版本 sublimetext 3 http://www.sublimetext.com/3 2、安装 Package Control, 在打开 Sublime Text 3以后,按下快捷键 Ctrl + `或者到菜单栏的:View > Show Console执行以下命令 import urlli...阅读全文

博文 2015-03-27 09:46:34 ghj1976

go语言json操作

可使用go语言官方的package中的”encoding/json”来处理json数据,详细可以参考json包的示例。 还有一种更简单直接的方法,使用github.com/bitly/go-simplejson包,这个包封装了encoding/json里的Unmarshal和Marshal方法,提供更易用的接口。 地址:https://github.com/bitly/go-simplejson 文档:http://godoc.org/github.com/bitly/go-simplejson 具体用法可以参考包里的测试代码:simplejson_test.go,非常方便。 package main import ( "fmt" "github.com/bitly/go-simplejso...阅读全文

博文 2014-11-16 10:17:00 铁哥

django ORM 查询关系

模型关系: from django.db import models # Create your models here. class Author(models.Model): nid = models.AutoField(primary_key=True) name = models.CharField(max_length=32) age = models.IntegerField() # 与AuthorDetail建立一对一的关系 authorDetail = models.OneToOneField(to="AuthorDetail", on_delete=models.CASCADE) class AuthorDetail(models.Model): nid = models....阅读全文

博文 2019-05-15 19:34:48 dongshangtong

golang导出csv

项目中涉及到导出到csv的功能,在网上找了一圈,有个UTF82GBK的方式,这个后来发现有bug,涉及到复杂中文,显示出来的有问题,而且导出来的csv不是utf-8格式,不能用文本编辑器打开.最终确定一个方案,也比较简单,既解决了csv用excel打开,中文乱码问题,也能用编辑器打开,还能默认显示带逗号的字符串.废话不多说,直接上代码. package main import ( "encoding/csv" "log" "os" ) func main() { filename := "/Users/icsoc/Downloads/test.csv" columns := [][]string{{"姓名", "电话", "公司", "职位", "加入时间"}, {"1", "2", "刘犇...阅读全文

博文 2019-03-22 11:34:41 林子老公

关于常驻内存RES,pprof,heap,threadcreate的疑问

小弟写了个简单后台用来接收POST请求上传过来的文件,并保存到后台本地。在做测试的时候,每一次请求上传5个文件,5个文件大小总和大概在300-400k的范围,测试的时候模拟客户端并发1000个POST上传文件。后台处理完1000请求后 RES直接上到500MB,查看/debug/pprof/下的threadcreate也直接上到400多个,再并发第二次,第三次... 1000个POST请求,RES在600多MB就不再涨了,threadcreate涨到570以后,增长速度就放缓了,此后七八分钟不再有请求发送RES慢慢再回降到100MB左右,但是threadcreate一直没有降过。上个图吧 ##1.服务开启: ####RES: +![开启服务.jpg](http://studygolan...阅读全文

小白入坑同性交友网站github总结

小白入坑同性交友网站github总结 常用词汇及含义 1. watch 表示会持续收到该项目的动态 2. fork 复制某个项目到自己的github仓库 3. star 可以理解为点赞的个数 4. clone 将远程服务器上的源代码下载到本地 5. follow 关注你感兴趣的作者,会收到他们的动态 可以从图中看到我们可以在途中一次找到上面的几个功能的区域,但是没有follow,如果想要关注某个开发者可以直接点击他的头像进去他的主页在头像下方就可以follow某个开发者 in 关键字限制搜索范围 我们可以使用一些搜索的技巧,就像我们使用搜索引擎一样,比如有个叫google hack的东西,很多学习安全的人都回去学google一些高级的搜索语法。在github中也同样有一些高级的搜索的语法。 ...阅读全文

博文 2019-04-13 14:34:42 _AlphaBaby_

魅族手机bindService返回false问题

摘要(本文所讲重点): 1、 应用B未开启应用A如何绑定应用B的Service 2、 魅族手机无法bindService(非设置component解决) 最近在搞进程通信相关的东西,采用的Android提供的Messenger来实现跨进程通信,Messenger底层实现完全类似AIDL,不一样的地方在于AIDL支持多线程,且同步返回,但是我的项目并不需要这些,所以采用使用难度更低的Messenger。 期间遇到的第一个问题是,应用B处于未打开状态,应用A无法启动应用B的Service,据说早期Android是可以的,具体多早呢,不用考虑了,现在7.0,8.0,9.0肯定不支持,也不纠结,因为从安全角度来看的确不能允许这么做,不然大量不死的进程不得耗光手机电池电量才怪,具体怎么解决,很简单,从...阅读全文

博文 2019-07-31 11:32:44 zerochl

rete算法学习

在上篇博客中,介绍了策略型业务逻辑处理中几种选择,其中有一种选择就是利用规则引擎来进行逻辑处理。其实藏在规则引擎的底层中还是有很多算法的,其中有一种算法是rete算法,最近正好也关注算法,就简单的学习了一下,因为对这个算法理解的非常清楚,所以如果有有对这个算法熟悉的朋友,可以给予指正。 RETE算法是一个用于产生式系统的高效模式匹配算法。在一个产生式系统中,被处理的数据叫做working memory,用于判定的规则分为两个部分LHS(left-hand-side)和RHS(right hand side),分别表示前提和结论。主要流程可以分为以下步骤:Match:找出符合LHS部分的working memory集合Confilict resolution:选出一个条件被满足的规则Act:执...阅读全文

博文 2017-11-29 01:46:20 lfsf802

google hosts 2015.1.4

感谢互联网为所有人提供开放自由的服务,祝愿祖国繁荣富强人民安居乐业... google hosts 2015.1.4 更新,本文只提供google相关服务的hosts,目前有效 注1:请使用chrome浏览器,并在地址栏里输入 chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ====更新分界线,复制下面内容到hosts文件即可===== #google hosts 2015 by 360...阅读全文

博文 2015-01-05 16:00:01 明舞

一起学context(一)——上下文值传递

系列开篇 本文开始将针对context的用法进行系统化讨论,在这里你将能够在工作中合理使用context解决一些比较棘手的问题。 context处理超时处理之外还可以用来保存数据,当你需要在多个上下文传递时传递数据,那么本文提到的知识可以排上用场。 示例代码 示例代码为一个简单的http服务,流程是登录之后会跳转首页,首页通过guard中间件进行鉴权。当然,示例代码未做其他诸如连接数据库之类的处理,这不是本文的重点。守卫函数读取cookie之后将cookie值写入context并向下传递,在整个请求中可以说是“透明”的。当访问到需要保护的接口时检测到没有提供cookie,则直接终端请求,否则通过r.WithContext将username的值存入cookie,避免的业务接口直接读取cooki...阅读全文

博文 2018-10-17 22:34:41 xialeistudio

大型网站的HTTPS实践(二)-- HTTPS对性能的影响

1 前言 HTTPS在保护用户隐私,防止流量劫持方面发挥着非常关键的作用,但与此同时,HTTPS也会降低用户访问速度,增加网站服务器的计算资源消耗。 本文主要介绍https对用户体验的影响。 本文最早发表于百度运维部官方博客 2 HTTPS对访问速度的影响 在介绍速度优化策略之前,先来看下HTTPS对速度有什么影响。影响主要来自两方面: 1. 协议交互所增加的网络RTT(round trip time)。 2. 加解密相关的计算耗时。 下面分别介绍一下。 2.1 网络耗时增加 由于 HTTP和HTTPS都需要DNS解析,并且大部分情况下使用了DNS缓存,为了突出对比效果,忽略主域名的DNS解析时间。 用户使用HTTP协议访问http://www.baidu.com(或者www.baidu.c...阅读全文

博文 2015-05-04 11:27:08 luocn99

Golang让协程交替输出

What you are wasting today is tomorrow for those who died yesterday; what you hate now is the future you can not go back. 你所浪费的今天是昨天死去的人奢望的明天; 你所厌恶的现在是未来的你回不去的曾经。 之前用Golang写过一篇关于下载的文章(https://my.oschina.net/90design/blog/1607131), 最后提到:如果新需求是同时下载,并且按循序下载,最近看到在论坛里有人又再问起,就想起来更新一下此问题。 开始 两个协程交替输出1-20 package main import "fmt" func main() { A := make(c...阅读全文

博文 2018-01-19 11:33:05 90design

重定向301和302

网上很多关于301和302的区别,这里只举实例以作说明:3011、浏览器第一次访问url时,会请求服务器,然后从响应头的Location字段拿到落地页做跳转2、浏览器后面再访问url时,不会请求服务器,直接用浏览器缓存直接跳转到最终落地页3、清理浏览器缓存后,再次请求url,同第1步3021、浏览器无论什么时候访问url,都会请求服务器,然后从响应头的Location字段拿到落地页做跳转综上:如果希望每次跳转都经过服务器,必须使用30...阅读全文

博文 2019-08-06 10:37:04 yanglikai

悲催啦,居然喜欢上Golang

这2天试了试Google的Golang,很有感触,太像C啦,太好用啦~~~~~~~~~~ 居然一下子就喜欢上了,悲催的是,竟然不允许在生产环境上使用(为了确保系统的稳定性),只能拿来游戏游戏一番。爱又得不到,痛苦,更痛苦的是“爱人”天天在眼前晃来晃去的,扰人心神~~~~~~~~~ 就用此博客来做个学习笔记吧~~~~~~~~~~~~~ 防止Go官方网站被X:173.194.79.141 golang.org,你懂的...阅读全文

博文 2014-10-19 09:00:02 dandan.fs

google hosts 2014.12.16 更新

google hosts 2014.12.16 更新,本文只提供google相关服务的hosts,目前有效,失效后会及时更新。 注1:请使用chrome浏览器,并在地址栏里输入 chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 ====更新分界线,复制下面内容到hosts文件即可====== #google hosts 2014 by 360kb.com #base services↓ 6...阅读全文

博文 2014-12-23 13:00:03 弹一曲Happy颂

google hosts配置

注1:请使用chrome浏览器,并在地址栏里输入 chrome://flags/,然后查找QUIC,启用该协议,同时建议启用SPDY/4,能让访问更流畅。 注2:请使用https的方式访问,比如:https://www.google.com 注3:默认可能会跳转到www.google.com.hk,如果.hk访问困难,请使用:https://www.google.com/ncr 方式访问,禁止国别跳转。 64.233.166.105 www.google.com.hk64.233.166.105 www.google.com203.208.46.132 accounts.google.com 203.208.46.132 accounts.l.google.com203.208.46.132...阅读全文

博文 2014-12-13 08:00:01 吕坤

从零开始自建博客 (一)

2018 准备写点东西,于是有了下文。 1. 域名+网站空间 2016年 [小橘子](https://asmallorange.com/) 做促销时买的三年VPS 4G RAM+50G DISK +2 CPU 送一个域名 135$ 。 2. 博客程序 动态博客需要程序支撑,而且服务器环境要求高、迁移不易、安全等问题。主流静态博客生成工具有: * hexo nodejs 编写,跨平台,中文文档全。* hugo Golang 编写,跨平台,生成速度快。最终选择使用hugo,他的先天优势是一个执行文件就可以运行,而hexo 则需要安装nodejs 环境。 3. 评论留言系统 静态博客要支持评论留言有二种方式 * 第三方 搜狐提供的 (畅言 - 专业的社会化评论系统), 需要备案; (Disqus)...阅读全文

博文 2018-07-10 01:34:41 XinFlyfei

go语言vim开发环境快捷键

生成标签 gotags -R 项目 > tags 跳转到变量定义 光标在某变量或函数上,输入gd跳转;ctrl+o或者Ctrl+t返回 tagbar F8是tagbar快捷键,按一下出现tagbar,再按一下隐藏 nerdtree 当你需要浏览目录的时候,就可以使用快捷键F4 来调出浏览窗口了,再按一下隐藏 遍历标签 help tags获取帮助信息 ctrl+]查找特定名称标签 tp正向遍历同名标签 tn反向遍历同名标签 tl跳到最后一个 ts列出所有符合条件的tag 函数补全 Ctrl+x+o buffer窗口切换快捷键 MBEbn前一个窗口 MBEbp后一个窗口 $(function () { $('pre.prettyprint code').each(function () { va...阅读全文

博文 2015-11-16 16:01:31 yuanfang_way

IDEA+Go高亮出错

开发工具: IDEA 2016.3.3/2016.3.4 社区版、旗舰版都试过,golang 1.7.5,Go插件版本0.13.1924 现象: exec.Command("system_profiler", "SPHardwareDataType").CombinedOutput() inf, _ := net.InterfaceByName(name) MAC := strings.TrimSuffix(inf.HardwareAddr.String(), ":00:00") 上面几行代码中,CombinedOutput、.String()都变成了红色,按住Command键后单击也无法跳转到源码,进入sdk源码后可以看到CombinedOutput方法...阅读全文

Go 语言中手动内存管理

Go 语言是自带GC的, 相对C语言等的手动内存管理省事很多, 弊端便是会消耗更多的内存, 以及在GC时导致整个程序的停顿. 在某些特殊场合, 如果能够可选地手动进行内存管理, 效果会好不少. Go 目前的 GC 实现比较简单(mark-sweep算法), 进程的内存使用量取决于两次GC操作直接的内存申请量(不能重复使用), 而且通常GC发生在函数调用的深处, 大量对象无法立即释放. 另外, 目前Go对内存的使用是贪婪的, 一旦向系统申请了就不再释放, 进一步增大了内存消耗(但不是泄露). 整体看来, 对某些有大量临时内存的应用, 内存消耗量可能会是同样功能的C程序10倍, 甚至更多. Beansdb 的 Proxy 是用 Go 实现的, 其中一个部署图片和歌曲的实例也面临了这个问题, 运行...阅读全文

博文 2017-04-19 00:00:19 1071954237

beego实现用户未登录跳转到登录页面

主要涉及内容: 1. 自动路由 2. 过滤器 3. session控制 4. 表单请求数据处理 main.go ```go //这里应该加载 "github.com/astaxie/beego/context" 否则会加载src/context //过滤器 var FilterUser = func(ctx *context.Context){ _, ok := ctx.Input.Session("uid").(string) ok2 := strings.Contains(ctx.Request.RequestURI, "/login") if !ok && !ok2{ ctx.Redirect(302, "/login/index") } } func main() { //注册过滤器...阅读全文

博文 2018-11-21 19:13:26 lijingtian

请问Go中的Channel可不可以在不写入数据的情况下判断是否可写?

小白求解。。。 类似的,还有在不执行读取动作的前提下能否判断一个channel是否可读? 我不想用select case因为那样一旦判断可写/读的话这个读写操作就事实上产生了。我需要等待两个channel同时可读的时候再将它们的值同时读出来。。...阅读全文

golang trace工具使用

1)增加如下代码 //导入包 import ( "net/http" _ "net/http/pprof" ) //增加如下代码 go func() { fmt.Println(http.ListenAndServe(":5567", nil)) }() 2)执行curl 127.0.0.1:5567/debug/pprof/trace?seconds=10 > trace.data,获取到trace.data数据 3) 执行 go tool trace -http=':8888' your_app_bin trace.data。会跳转到浏览器查看trace到数据...阅读全文

博文 2017-05-25 05:00:38 xloogson