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

Golang中调用DLL示例—Win32 API

不断的会有人问:在go中可以调用dll么?如何做? 这里提供一个示例(获取当前Windows版本): package main import ( "syscall" ) func abort(funcname string, err error) { panic(funcname + " failed: " + err.Error()) } func print_version(v uint32) { major := byte(v) minor := uint8(v >> 8) build := uint16(v >> 16) print("windows version ", major, ".", ...阅读全文

轻量级开源社区系统Zendea

zendea是一个使用Go语言开发的开源社区系统,采用前后端分离技术,Go语言提供api进行数据支撑,用户界面使用Nuxt.js进行渲染,后台界面基于element-ui。 ![Screenshot](http://static.zendea.com/zendea.jpg) 功能特性 快速、简单 界面美观、渐进响应式布局 基于OAuth实现第三方帐号登录,目前支持Github/Gitee等 图片上传 自定义头像/文本 用户积分体系 普通用户/超级管理员角色划分 通知 Markdown语法支持 标签 公告/小贴士 RSS订阅 前后端完全分离 支持MySQL和Sqlit...阅读全文

golang--从类型转换角度看interface

刚开始接触golang,可能对interface的使用有些迷惑,尤其在有些资料里,介绍得更是云里雾里,让人搞不清楚。本文尝试从类型转换的角度来解析interface,希望对大家能有所帮助。不多说,先上代码。 package main import ( "fmt" ) func main() { var general interface{} general = 6.6 type_cast(general) general = 2 type_cast(general) } func type_cast(general interface{}) { switch general.(type) { case int : fmt.Println("the general type is int") ...阅读全文

博文 2014-10-04 19:26:04 getong

由AlphaGO引发的思考

这几天AlphaGO的人机大战炒得热火朝天,给谷歌的AI做了一次大大的广告,可谓风头出尽,大有AI战胜一切的“趋势”。而且,像阿法狗、阿法猫之类的新词不断,成了饭前茶后人们议论的热点。作为一个留学过日本的理工男,我也用战胜机器的发散思维理解一下这个热点,供所有程序员们思考。 首先,看看网友们的经典语句: 1、如果说我下棋比别人更厉害些,那是因为我站在了人类的肩膀上。 2、天才,是99%的模拟复盘,加1%的深度学习。 3、你见过洛杉矶凌晨四点的机房吗? 4、下自己的棋,让别人说去。 5、给我一台Wi-Fi,我可以撬动整个地球。 6、电量就是力量,法国还是培根。 7、深度学习是人工智能进步的阶梯。 8、哪里有天才,我只不过是把别人吃饭睡觉洗澡上网的时间用于蒙特卡洛树搜索罢了。 9、人工智能如果没...阅读全文

博文 2016-03-14 19:00:00 goodmangis

The way to go !

或许人都是寂寞的,都想有某种宿求,都想说一些想说的话,今天是第一次写博客,因为心情有点儿乱吧,想在这里梳理一下。 还没自我介绍过,就先说说自己吧。 我是天津工业大学计算机与软件学院大三学生,专业是软件工程。我们的学院有点儿特殊,又是天津市大学生软件学院,这样的双重身份是有点儿特殊的,是天津市继续软件类人才了就创建了这些学院。学院是2010年建立的,我是第一批入驻的学生之一。 在没上第一节C语言课之前,我是不知道程序是那样的……时至今日,感觉心里很乱,但还是有一点儿思路的。(我的说话语气一直用可能,这是我的性格的第一反应吧,我觉得这该改改了。)嗯,是的,是有思路的。但可能是自己太偏执,一直想要弄清楚那个过程,而且要求还是一步一步的,从人的思维到机器思维的完全转变。这有点儿强迫症的意思了。当然一...阅读全文

博文 2015-12-22 22:00:00 zhaolinchuan

intellij idea13.1.4b配置go开发环境

首先下载intellijdea13.1.4b(建议大家使用14,因为13.1.14a版本有bug,容易下错) http://pan.baidu.com/s/1i3kns5B 再去下载go1.2 http://www.golangtc.com/download 最后下载intellijIDEA的go插件:http://plugins.jetbrains.com/plugin/5047?pr=idea 这个插件最新支持到go1.2版本。所以上面要求大家下载1.2版本的go。 安装插件过程如下:进入setting > plugins > install plugin from disk > 选择gojar插件 >完成 > 重启。 新建一个go项目,看到 new project>go 安装成功。 体...阅读全文

博文 2015-01-22 23:00:01 u010499721

1-3年的程序员,你跳槽了吗?

2019年年假放完回来,就着手跳槽的事情。对于我,一个普通二本,工作不到两年经验,二线互联网公司,刚投递简历的时候,碰壁不少。我相信很多不满公司现状的同学也是准备在一年中最旺盛的跳槽季做准备,鉴于我自己努力后,拿了几个offer(包括阿里与腾讯银行),分享一点心得。马爸爸说过,跳槽有两个原因,一是钱不到位,二是心伤了,而我,还要加一条,“未来的方向”。 本人是从事java技术岗,从近年来看,golang后来居上,已经开始动摇了java在后端的地位(当然我也遇到由于市场golang人才少和昂贵而转java技术栈的,如腾讯下某政务公司)。并不是说故步自封不学习新技术,而是在黄金跳槽季中,经验尚缺的我来不及学好另一门语言。对于“未来的方向”,我希望可以从事在金融领域上的开发,除了本身毕业于金融学院...阅读全文

博文 2019-05-01 15:34:41 云师兄padding

studygolang源码阅读小结 <二>

## 准备数据库模块 ## 1. 数据库创建 首先安装MySql,地址http://www.mysql.com/downloads/mysql/,Macos下选择DMG安装,否则需要手动安装。100多M,需要注册登陆之后才能下载。 安装完成之后创建一个数据库服务器,(使用MySql Workbench GUI更方便一些),**并使用database/文件夹下的两个sql文件创建并初始化数据表** 2.DSN设置 studygolang的数据库采用MySql数据库的go语言实现版本,在conf文件夹下找到config.json文件,里面有这样两个key value值 "drive_name": "mysql" ...阅读全文

一份来自阿里云引擎ACE的求职信,你收到了吗?

尊敬的企业领导,个人站长、开发者们: 如果有个员工,可以把企业把70%运维的工作都干了,你们再也不用操心对操作系统、运行环境、应用中间件的安装、配置、优化、监控、升级等一系列繁杂的维护工作,可以专注精力在业务运营上,您是否会考虑录用他? 下图就是阿里云引擎ACE求职信,敬请查收! 详细了解ACE:http://www.aliyun.com/product/ace !![1111111.jpg](http://studygolang.qiniudn.com/151126/487be9e31756e7b913347e4f645e3023.png) 详细了解ACE:http://www.aliyun.com/product/ace...阅读全文

在Windows下为Go安装goprotobuf

步骤如下: 1. 安装Go for windows(测试版本v1.1.2),设置好GOPATH,GOROOT等环境变量 2. 安装protoc windows binary:直接下载protoc-2.5.0-win32.zip,解压protoc.exe到path所包含的目录即可 3. 拿到goprotobuf的source code: go get code.google.com/p/goprotobuf/{proto,protoc-gen-go} 以上是官网做法,一般在windows下还需要先搞定hg等等工具 其实也可以直接从https://code.google.com/p/goprotobuf/source/browse/ 下载,点击"download zip"即可 下载之后,需要手工...阅读全文

博文 2014-10-04 19:26:02 yhcharles

指向切片的指针取切片中的值得问题

package main import ( "fmt" ) func main() { //指向切片的指针 var p = new([]int) *p = append(*p, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0) for i, v := range *p { fmt.Println(i, v) } fmt.Println(len(*p)) fmt.Println(p[9]) } 上述代码的最后一句无法输出,我想问下,如果是指向数组的话,最后一句代码是可以输出的,而对于指向切片的指针,该怎...阅读全文

Go 边看边练 -《Go 学习笔记》系列(三)

上一篇: Go 边看边练 -《Go 学习笔记》系列(二) 1.7 指针 支持指针类型 *T,指针的指针 **T,以及包含包名前缀的 *.T。 默认值 nil,没有 NULL 常量。 操作符 "&" 取变量地址,"*" 透过指针访问目标对象。 不支持指针运算,不支持 "->" 运算符,直接用 "." 访问目标成员。 不能对指针做加减法等运算。 x := 1234 p := &x p++ // Error: invalid operation: p += 1 (mismatched types *int and int) 可以在 unsafe.Pointer 和任意类型指针间进行转换。 返回局部变量指针是安全的,编译器会根据需要将其分配在 GC Heap 上。 func tes...阅读全文

博文 2015-09-04 21:37:03 88250

ssdb的golang驱动的同步问题

如果数据库连接只有一个,在某个时间点(指的是某个及其短的时间内),多个读写的话,会出问题,修改了下,加了个mutex,算是解决了此问题,贴下备忘 var mutex sync.Mutex func (c *Client) Do(args ...interface{}) ([]string, error) { var resp []string var err error mutex.Lock() err = c.send(args) resp, err = c.recv() mutex.Unlock() return resp, err ...阅读全文

博文 2014-10-04 19:26:16 ziyouchutuwenwu

wrk测试nginx nodejs golang

http://www.cnblogs.com/chuqq/p/4003197.html 直接把内容贴过来: sudo taskset -c 1 ./wrk -c1 -t1 -d30 http://localhost/hello wrk+nginx(helloworld module) sudo taskset -c 0 sbin/nginx nginx: cpu:76% wrk: cpu:70% Running 30s test @ http://localhost/hello 1 threads and 1 connections Thread Stats Avg Stdev Max +/- Stdev Latency 61.55us 27.57us 4.30ms 99.28% Req/S...阅读全文

博文 2014-11-13 20:00:02 chuqingq

学习go语言

在je上看见帖子,google出了go语言,跟着贴子看来一圈也没看明白什么意思,实例程序看着到是挺简单,但是不知道怎么运行,运行环境在哪弄,也看有人写了go的一个程序,看来也没有看懂怎么运行。希望关注go的朋友多交流一下,也请高手指导指导我们这些初级程序员,接触了写语言,都是接触的不深,现在go刚出来,我想这次能够学的扎实一点。如果有写了go程序的,请跟大家分享一下,开发工具啊,安装上的问题,以及如何运行等,感谢分享知识的所有...阅读全文

博文 2014-10-04 19:26:02 horseroad

SublimeGDB调试Golang

下载 SublimeGDB 在sublime text 2 中 Install Package -> SublimeGDB重启Sublime Text 2修改 workingdir 为工程所在目录,修改 commandline中executable为可执行文件名,如"workingdir": "${home}/gocode/bin", "commandline": "gdb --interpreter=mi --args ./revel run myapp" 常见命令: Launch with F5Step over with F10Step into with F11Step out with Shift+F11 转贴:http://www.cnblogs.com/ztiandan/arc...阅读全文

博文 2016-02-07 23:00:03 Mirage520

Go语言小贴士2 - 协议解析

作者:达达链接:https://zhuanlan.zhihu.com/p/21367696来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。今天这个小贴士主要介绍协议解析的一些知识,Go语言作为服务端编程语言,免不了要涉及到通讯协议解析,即便不是做网络通讯,也难免会涉及到文件解析,其实它们的知识点都是一样的。 现实应用场景中,通讯协议按通常可以分为两类:二进制协议和文本协议。Go语言内置的gob格式就是一种二进制协议,而JSON、XML等则是文本协议。 假设我们要发送123这个数值,用二进制协议只需要一个字节,因为一个字节(byte)有8个二进制位(bit),2的8次方是256,一个字节可以表达0-255之间的任意值,共256种可能性。 如果我们用文本协议发送12...阅读全文

博文 2016-08-29 12:00:01 dasn

游戏盾的三次技术演进

摘要: 游戏盾从诞生之初到现在,经历了三次重大的技术变革。从初代的“云层”,到现在的游戏盾,无论是从技术架构还是从功能实现上,都发生了翻天覆地的变化。 而驱动这些变化的浅层因素,是攻防资源的不对等问题;深层因素则是对现有网络本身的路由规则和基础设施的深度思索。 游戏盾从诞生之初到现在,经历了三次重大的技术变革。从初代的“云层”,到现在的游戏盾,无论是从技术架构还是从功能实现上,都发生了翻天覆地的变化。 而驱动这些变化的浅层因素,是攻防资源的不对等问题;深层因素则是对现有网络本身的路由规则和基础设施的深度思索。 简单来说,游戏盾通过风控模式调度流量来撬动攻防天平;而从本质来说,游戏盾更像是一个除了路由和DNS之外,能再次改变流量走向的存在。 云层:第一次实验 游戏...阅读全文

onlyoffice文档协作的权限开发,利用casbin和golang语言

登录用户,对于已经进行了权限设置的文档,将根据权限数据库,比对用户名,当与用户有关时,就显示相对应的权限,当都与登录用户无关时,则显示拒绝访问; 对于未登录用户,已经设置了权限的文档,都将显示拒绝访问; 对于登录和未登录用户,未进行权限设置的文档,则显示全部允许。 如果是用户自己上传的,则全部允许。 下图登陆用户和未登陆用户箭头指反了...阅读全文

博文 2018-04-15 21:33:05 3xxx

golang拼接字符串性能测试

直接下结论: bufferTest > plusTest ~= JoinTest > sprintfTest 结果如下: sprintfTest Run time: 3.4220012s plusTest Run time: 2.1400019s bufferTest Run time: 997.4µs JoinTest Run time: 2.1810023s 贴代码: package main import ( "bytes" "fmt" "strings" "time" ) const number = 100000 func sprintfTest() { var s string bT := time.Now() for i := 0; i < number; i++ { s = ...阅读全文

博文 2019-10-12 17:02:49 aside section ._1OhGeD

Ubuntu12.10 配置go语言开发环境

废话少说直接切入主题 系统为Ubuntu12.10 1下载go的源码包 现在已经出到了go1.1beta2 但是我们现在还是用go1.0.3这个版本 手动下载:http://code.google.com/p/go/downloads/list 命令下载:wget https://go.google.com/files/go.1.0.3.linux-amd64.tar.gz 2 将下载后的文件最好是放在home下因为在”下载“那里有中文路径 3 输入命令将源码包解压到usr/local/目录下 sudo tar -zxvf go1.0.3.linux-amd64.tar.gz -C /usr/local/ 4 等待解压完成之后 需要打开ubuntu的配置文件将环境变量添加进去 sudo ge...阅读全文

博文 2014-10-04 19:26:18 Mr-Cheung

GoLang之Concurrency顺序管道模式

2013-12-14 wcdj 本文介绍go利用管道如何进行并发计算,需要注意go的管道是双向的,而UNIX管道是单向的。 PS: 在测试时自己建立了一个后缀为_test.go的文件,build后会提示如下错误: 一句话解释:在go中文件名后缀为_test.go的都是单元测试文件。 具体可参考:http://segmentfault.com/q/1010000000159135 本例参考《go语言程序设计》第七章的一个例子,并添加了一些注释。 package main import ( "flag" "fmt" "log" "os" "path/filepath" "runtime" "strings" ) func main() { // Use all the machine's cor...阅读全文

博文 2015-06-17 20:17:45 delphiwcdj

golang学习笔记之-多层循环嵌套贴标签

如果是多层循环嵌套,那么默认结束最里层的循环。如果想结束外层循环,可以通过"贴标签"的形式。 正常使用 package main import ( "fmt" ) func main() { for i := 1; i <= 5; i++ { for j := 1; j <= 5; j++ { if j == 2 { continue //结束的是里层循环:结束这一次i } fmt.Printf("i:%d,j:%d\n", i, j) } } } /* output: i:1,j:1 i:1,j:3 i:1,j:4 i:1,j:5 i:2,j:1 i:2,j:3 i:2,j:4 i:2,j:5 i:3,j:1 i:3,j:3 i:3,j:4 i:3,j:5 i:4,j:1 i:4,j:3 ...阅读全文

博文 2018-09-02 20:34:42 Maggie_up

命令行 IP 查询工具 IP resolver

IP resolver 是一个使用 Go 语言开发的命令行 IP 查询工具。它可以通过多个 DNS 服务器解析一个域名的 IP 地址,并显示各个 DNS 服务器的查询结果,便于观察不同 DNS 服务器在A记录解析上的不同之处。 ![Screenshot of IP resolver](http://static.oschina.net/uploads/img/201510/03193640_zBDy.png) ## 创建可执行文件 IP resolver 依赖 _github.com/miekg/dns_ 包, 如果你没有安装此包,请使用下面的命令安装:

go get github.com/miekg/dns
然后使用下面的命令创建可执行文件:
g...阅读全文

开源项目 2015-10-02 16:00:00 m3ng9i

Spring杂记

微信突然很久没有联系的小码(注意下隐私)头像晃动了,打开看了看。立马内容写到“涛哥,帮我看个问题呗,折腾了半天没有看明白设问题。”。小A是之前我的朋友,转行做的java开发,我的java知识基本停留在2008年大学毕业前给老师做过的项目。毕业后一直从事C、PHP、Golang开发。N年没有接触过Java项目了,所以先是婉言拒绝了,他说应该是个很简单的问题,紧接着把项目打包发给我了。只好硬着头皮倒入了项目看了看,下面把代码简化下,大家看看这个很简单的代码。这是一个spring项目,首先看下beans.xml 阅读全文

博文 2018-07-28 15:34:58 GoSnail

onlyoffice文档协作的权限开发,利用casbin和golang语言

登录用户,对于已经进行了权限设置的文档,将根据权限数据库,比对用户名,当与用户有关时,就显示相对应的权限,当都与登录用户无关时,则显示拒绝访问; 对于未登录用户,已经设置了权限的文档,都将显示拒绝访问; 对于登录和未登录用户,未进行权限设置的文档,则显示全部允许。 如果是用户自己上传的,则全部允许。 下图登陆用户和未登陆用户箭头指反了...阅读全文

博文 2018-07-02 21:35:45 3xxxx

Windows goweb 简易服务面板

写个小工具,可把编译后的goweb程序 以服务模式运行,效果见下图 ![微信截图_20210331125702.png](https://static.studygolang.com/210331/30f8ce52f70a9cc8583851b7a4c94572.png) 使用方法,打开 配置.ini 文件 修改 path=goweb程序所在路径 保存 打开xxjs.exe点启动便可,如下图所示 ![微信截图_20210331125822.png](https://static.studygolang.com/210331/d46e8415bacf11b19c18f9d5b878fe4b.png) [下载地址](https://pan.baidu.com/s/1S7B...阅读全文

golang使用redis对文章进行投票

最近在学redis,本人菜鸟.代码是过程式的,没考虑优化.就是发篇文章记录一下.感觉redis还是很强大的. 规则 评分 = 支持票数*(86400/200)+时间戳, 文章获得为200票就可以在首页展示一天,随着时间的流逝,当分数小于当前时间戳的时候,就从首页撤下. 使用hash记录文章的标题,链接,作者,文章发布时间,文章得到的投票数量. 使用两个有序集合来有序的存储文章:第一个有序集合的成员为文章ID,分值为文章的发布时间;第二个有序集合的成员同样为文章ID,分值为文章的评分.通过这两个有序集合,网站既可以根据文章发布的时间来展示文章,也可以根据文章评分的高低来展示文章. 为了防止用户对同一篇文章进行多次投票,网站需要为每篇文章记录一个已投票用户名单,为此,程序将为每篇文章创建一个集合...阅读全文

博文 2018-08-07 11:35:01 键盘侠

Go语言小贴士3 - bufio包

之前我们介绍了io包和协议解析,这次我们要来讲讲bufio包,这个包实现了在项目中很常用到的带缓冲的IO。 先从我们前一个小贴士中的分包代码讲起,重新贴一下这段代码: func ReadPacket(conn net.Conn) ([]byte, error) { var head [2]byte if _, err := io.ReadFull(conn, head[:]); err != nil { return err } size := binary.BigEndian.Uint16(head) packet := make([]byte, size) if _, err := io.ReadFull(conn, packet); err != nil { return err } ...阅读全文

博文 2017-02-10 16:35:39 达达

Go语言小贴士1 - io包

Go语言作为定位服务端编程的语言,处理文件和网络通讯是它主要的应用场景,不论是处理文件还是处理网络通讯,它们都被称之为IO编程,即-对计算机的输入输出设备进行编程。 Go的运行时有一个名叫io的包,从命名可想而知它在Go语言的实际应用中有多么重要的地位,Go语言的所有IO编程都绕不过这一个包。 所以正确的理解这个包,在Go语言的工程实践中是非常重要的,不论你是准备用Go语言处理文件还是处理网络通讯,请务必先看这个包。 io包中大部分是接口定义,其中io.Reader和io.Writer最为关键。在Go语言中,文件、套接字等一切输入设备抽象,都会实现io.Reader接口,而一切输出设备抽象,都会实现io.Writer接口。 io.Reader的定义如下: type Reader interf...阅读全文

博文 2017-02-10 16:35:19 达达

Help!!!如何使用os/exec包在执行外部命令时反复地输出获取到的结果?

![p1.png](https://static.studygolang.com/171101/c9ee545ae77e5784c2859bd9acbae33d.png) 如图,如何循环让下图中的leela接受每一条命令就输出一次获取到的结果? 试了几次,无论我加多少条新的cmd.Stdin = strings.NewReader("xxxxxxx")上去 都只会打印cmd.Run()的下一行,其它全部不执行 所以我非常不解,怎么才能让我后面每加一条新的io.reader命令 都会输出一次...阅读全文

Go语言小贴士2 - 协议解析

今天这个小贴士主要介绍协议解析的一些知识,Go语言作为服务端编程语言,免不了要涉及到通讯协议解析,即便不是做网络通讯,也难免会涉及到文件解析,其实它们的知识点都是一样的。 现实应用场景中,通讯协议按通常可以分为两类:二进制协议和文本协议。Go语言内置的gob格式就是一种二进制协议,而JSON、XML等则是文本协议。 假设我们要发送123这个数值,用二进制协议只需要一个字节,因为一个字节(byte)有8个二进制位(bit),2的8次方是256,一个字节可以表达0-255之间的任意值,共256种可能性。 如果我们用文本协议发送123这个数值,则需要至少三个字节,因为123这个数字需要转换成字符'1'、'2'、'3'这三个ASCII字符,存入三个字节中。 所以同样一个数据,用二进制协议表达的体积通...阅读全文

博文 2017-02-10 16:35:27 达达

Python之上下文管理器

1.引入 我们时常会看到网上很多人写文件读写的代码的时候,常常是这么写的: with open('test.txt', 'r') as f: print(f.read()) # 其它操作 这个with有什么用呢? 我们来看看不用这种写法我们怎么写。 假如我们直接这么写: f = open('test.txt', 'r') print(f.read()) # 其它操作 f.close() 这种写法有什么问题呢? 假如在做其它操作的时候,出错了,程序终止,f.close()不会执行,则f这个句柄会一直得不到释放,要是并发操作,这个就很严重了。 所以我们通常会这么写: try: f = open('test.txt', 'r') except Exception: pass finally: f....阅读全文

博文 2019-10-11 18:32:50 aside section ._1OhGeD

Go入门系列(二)基础

目录: 一、数据类型 二、常量变量 二、基本逻辑 一、数据类型 对比python,我们必须意识到GoLang是一门强类型语言。 1、布尔型 在 Go 中,布尔值的类型为 bool,值是 true 或 false,默认为 false。 func main() { var a bool fmt.Println(a) } #输出 false 2、数字类型 整型 类型 取值范围 int8 -128到127 uint8 0到255 int16 -32768到32767 uint16 0到65535 int32 -2147483648到2147483647 uint32 0到4294967295 int64 -2^(64-1)到2^(64-1)-1 uint64 0到2^64-1 所谓无符号类型即为非负...阅读全文

博文 2020-02-24 21:32:55 RabbitMask