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

Golang中的error类型

Golang中的error类型 error类型本身就是一个预定义好的接口,里面定义了一个method type error interface { Error() string } 生成一个新的error并返回 一般有以下几种处理方式: package main import ( "errors" "fmt" ) type Customerror struct { infoa string infob string Err error } func (cerr Customerror) Error() string { errorinfo := fmt.Sprintf("infoa : %s , infob : %s , original err info : %s ", cerr.info...阅读全文

博文 2015-06-27 03:00:00 Goden

Go 中 defer 的 5 个坑 - 第一部分

> 通过本节的学习以避免掉入基础的 defer 陷阱中 本文只适合想要进阶学习 Golang 的新手阅读,大牛请绕道。 ## #1 -- defer nil 函数 如果一个延迟函数被赋值为 `nil` , 运行时的 [`panic`](https://golang.org/ref/spec#Handling_panics) 异常会发生在外围函数执行结束后而不是 `defer` 的函数被调用的时候。 例子 ```go func() { var run func() = nil defer run() fmt.Println("runs") } ``` 输出结果 ``` runs ❗️ panic: runtime error: invalid memory address or nil poi...阅读全文

博文 2017-12-26 15:11:12 polaris

IntelliJ Idea 14 使用go-lang-idea-plugin 0.9.16-alpha.9

使用Idea 14 开发Go程序的话,需要安装go-lang-idea-plugin,但是Idea提供的插件版本是0.9.15版本这个版本有各种BUG尤其是对Idea 14. 我试了很多方法之后还是无法正常使用go-lang-idea-plugin 0.9.15插件甚是头痛!不过天无绝人之路经过百度一顿搜索之后还是发现了一线希望。 我的本地环境如下: 1.OS: MAC OS YOSEMITE 10.10.1 2. IntelliJ Idea 14 FOR MAC 3.下载go-lang-idea-plugin 0.9.16-alpha.9 https://github.com/go-lang-plugin-org/go-lang-idea-plugin/releases/ 这里有各种版本的...阅读全文

博文 2015-01-28 11:00:01 korykim

liteIDE 快捷键改装

LiteIDE改装 最近一直都在使用liteIDE做开发。公司的项目很紧张,但是在这个周末。还是偷偷的对liteIDE小不爽的地方进行了一些小的改造。 IDE上的run按钮就是运行当前的go文件。 首先我们项目运行只是运行统一或者少数的入口点每次点开固定的文档才能run真的是够了。另外一个主要的原因在于liteIDE没有project管理支持。 而且这个IDE貌似没有出很长时间一般的RCP平台都是有插件开发的。但是这没有插件开发(貌似是有。而且是用python写的)但是,没找到文档(截至 2015年1月19日)也是醉了。 关键入口点还是我在google Code上找到的一个文档。 在配置中的LiteBuild里面有一个gosrc.xml 这个配置文件能修改buttion调用的命令。好吧就只能...阅读全文

博文 2015-03-07 21:32:39 jianyingLi

Golang部份特性的C++对比实现

今天看到一篇文章<>, 我个人是认为这个说法是不成立的,但这里面的一些特性对比引起了我的兴趣。 我想尝试下,Go语言所带的一些东西,在C++11中是如何做的,应当很有意思。所以刷刷刷,就有了下面的东西。 目录: 字符串字面值 变量初始化 lambda 值顺序递增 多值赋值及函数返回多值 map查找 可变参数 回调函数 泛型 数组和切片 字面值 这个东西在两种语言中都有比较好的解决方式.Go语言用" ` "符号,C++使用R(" )"这种方式。可以省掉不少转义符的输入。 Golang path := `c:\a\b\c\GG再也不用烦转义符了` mulln := `"(C++/Golang aa'aaa\Cplusplus/gogogo author"xion...阅读全文

博文 2014-12-16 10:00:15 xcltapestry

【Go1.4】主要改动

Go 1.4 计划9月份冻结代码,12月份发布,目前官方公布的主要改动有: 1、规范:允许 for range x 这种写法 原因:在标准库中,存在这样的写法 // unicode/utf8/utf8.go func RuneCountInString(s string) (n int) { for _ = range s { n++ } return } 很显然,这里不关心具体的index或value,同时,既然可以省略 value,为什么不能将 index 也省略。因此,加入了这种语法。这样,上面的代码变为: for range s { n++ } 详情: 1. [issue 6...阅读全文

Golang中JSON的运用解析

本篇文章翻译自Elliot Chance的"Working With JSON in Go",原文地址“http://elliot.land/working-with-json-in-go” 。欢迎大家访问[我的博客](http://zuozuohao.github.io/),代码可以在[@Zuozuohao](https://github.com/Zuozuohao/GolangGOFPatterns)下载。 在强类型语言中使用JSON是需要一些技巧的。技巧的意思是数据从JSON数据结构到语言支持的数据结构的转换可以灵活的进行,反之亦然。从而避免在操作数组和字典的时候产生类型检查和运行时类型转换的冗余代码。Go在这方面做了很多杰出的工作,正如Go在其他方面做出的努力一样。 Go...阅读全文

Go 1.4 新特性

Go 1.4 计划9月份冻结代码,12月份发布,目前官方公布的主要改动有: 1、规范:允许 for range x 这种写法 原因:在标准库中,存在这样的写法 // unicode/utf8/utf8.gofunc RuneCountInString(s string) (n int) { for _ = range s { n++ } return} 很显然,这里不关心具体的index或value,同时,既然可以省略 value,为什么不能将 index 也省略。因此,加入了这种语法。这样,上面的代码变为: for range s { n++ } 详情: issue 6102 CL 104680043 2、os 包的 Symlink 函数支持 Windows 系统 一直以来,在 Windo...阅读全文

博文 2014-11-20 11:00:02 平凡之路

Go 中如何有效的比较字符串

当优化软件时字符串比较可能和你想的有些不同。特别是包括拆分跨 goroutines 的循环, 找到一个更快的哈希算法,或者一些听起来更科学的方式。当我们做出这样的修改时,会有一种成就感。然而, 字符串比较通常是信息传递中(in a pipeline)的最大瓶颈。下面的代码段经常被使用,但它是最糟糕的解决方案 (参见下面的 benchmarks),并导致了实际问题。 ```go strings.ToLower(name) == strings.ToLower(othername) ``` 这是一种很直接的写法。把字符串转换成小写,然后在比较。要理解为什么这是一个差的解决方案,你需要知道字符串是如何表示的,以及 `ToLower` 是如何工作的。但是首先,让我们讨论一下字符串比较中主要的使用场景...阅读全文

搞定淘宝,京东 api调用返回的奇葩json格式

淘宝,京东的api调用返回的json格式跟golang的标准库encoding/json中的格式不兼容。 淘宝有些地方习惯性的把float数据加""变成字符串格式 比如 "delivery_score": "0.0", 文档上的又不一样 "delivery_score": 90, 京东的习惯是,不管是不是字符串类型都都加"",变成字符串类型的。 这样就造成标准库无法识别这些格式, 我把json拷贝出来,在decode.go文件的661行的literalStore函数种修改了:字符串处理方式代码如下: case '"': // string s, ok := unquoteBytes(item) if !ok { if fromQuoted { ...阅读全文

热更新配置参数例子(Golang)

在不停止程序的情况下,通过发送USR1或USR2等信号量,触发运行中程序的参数更新处理。当然还可以通过处理如kill等信号量, 让程序正确的处理退出操作。 做了个例子,效果如下。 可以看到通过发出kill -USR1 id号 让对应的程序参数发生了变更。 关于kill的参数值可以通过kill -l列出。 各个终端也提供了很多快捷键来支持特定信息的发送,如最常见的ctrl+c. 但注意,各个终端的快捷键定义可能不一样,而且有些是可以自定义的,这个要注意,在使用前可以用stty -a查出。 附上测试机这两条命令的结果: xcl@xclpc:~$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SI...阅读全文

博文 2015-06-17 20:04:33 xcltapestry

Golang学习(11)——path filepath包

Golang学习 - path/filepath 包-----------------------filepath 中的函数会根据不同平台做不同的处理,比如路径分隔符、卷名等。 -----------------------路径分隔符转换:const ( Separator = os.PathSeparator // 路径分隔符(分隔路径元素) ListSeparator = os.PathListSeparator // 路径列表分隔符(分隔多个路径))下面两个函数主要用于将 Windows 路径分隔符转换为 Linux 路径分隔符,处理完后再转换回去,只在 Windows 中有用,在 Linux 中没必要:// 将 path 中平台相关的路径分隔符转换为 '/'ToSlash(path ...阅读全文

博文 2017-02-10 10:15:54 1160636144

为什么分布式一定要有Redis?

考虑到绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知。所以我斗胆以 Redis 为题材,对 Redis 常见问题做一个总结,希望能够弥补大家的知识盲点。本文围绕以下几点进行阐述:为什么使用Redis使用Redis 有什么缺点单线程的Redis 为什么这么快Redis 的数据类型,以及每种数据类型的使用场景Redis 的过期策略以及内存淘汰机制Redis 和数据库双写一致性问题如何应对缓存穿透和缓存雪崩问题如何解决Redis 的并发竞争 Key 问题为什么使用 Redis我觉得在项目中使用 Redis,主要是从两个角度去考虑:性能和并发。当然,Redis 还具备可以做分布式锁等其他功能,...阅读全文

博文 2018-09-25 17:30:29 Javatiankenglu

Ubuntu 配置 Go 语言开发环境(Sublime Text 3)

Sublime Text 3安装 gosublime 下载 Sublime Text飞机票:http://www.sublimetext.com/3 安装 gosublime首先,我们需要安装 Sublime Text 的 Package Control 功能,在打开软件后,按下快捷键 Ctrl+`,(`这个符号为英文半角模式下,按下 Tab 键上方、数字键1左边的那个按键),此时会打开一个命令窗口,复制并输入以下内容,最后回车: import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_op...阅读全文

博文 2014-12-30 08:00:01 Kriry

『Golang』跨平台TUI(基于文字的用户界面)库Terbox-Go文档翻译

文 package termbox import "github.com/nsf/termbox-go" termbox-go 是一个用于创建跨平台TUI(基于文本的用户界面)的库。 索引 Variables func CellBuffer() []Cell func Clear(fg, bg Attribute) error func Close() func Flush() error func HideCursor() func Init() error func Interrupt() func SetCell(x, y int, ch rune, fg, bg Attribute) func SetCursor(x, y int) func Size() (int, int) fu...阅读全文

博文 2015-02-10 03:00:01 sitemanager

请教一个字符编码转换的问题

使用go在windows下编程是,因go是UTF8的编码方式,但在用go读一些网页时,由于有些网页使用GBK的编码方式,这样,在存在转码的问题,找了很久,网上有这个第三方库,但怎么装都不成功,总有一些错,请大虾指点一下。我完全是个新手,谢谢! https://github.com/djimenez/iconv-go https://github.com/qiniu/iconv 以下是安装 https://github.com/qiniu/iconvr 的报错 C:\Users\sh>go get github.com/qiniu/iconv # github.com/qiniu/iconv C:/mingw64/bin/../lib/gcc/x86_64-w...阅读全文

Visual Studio Code-GO tasks 设置 (实现在vsc下直接编译输出的功能)

Visual Studio Code -GO 使用过程中发现,如果要编译输出某个文件需要去cmd窗口才行,感觉特别麻烦网上一直没找到解决办法,这几天查看Visual Studio Code文档发现它提供 tasks 功能可以实现 需要了解Visual Studio Code所有功能配置是通过json文件配置的 tasks 工作原理是Visual Studio Code 自动执行你之前配置好的功能。 配置方法 : 第一次使用 打开vsc界面按 快捷键 Ctrl+Shift+B 会弹出 点击配置任务运行程序 点击Others 出现这个就是我们的配置文件,我们只要把我们的go语言的编译命令配上就行了 我的配置文件 tasks.json 更详细配置:http://code.visualstudio....阅读全文

博文 2016-08-06 11:00:01 wangtongxue123456

Goread:用Go编写的Google Reader的开源实现

《Goread:用Go编写的Google Reader的开源实现》作者对GR的现有开源实现并不满意,于是自己实现了一个版本——Goread,它具有如下特性:支持导入OPML、移动端支持良好、不需要安装其他支持、和GR有相同的键盘快捷键、简洁快速……详见: http://www.goread.io...阅读全文

Golang开发工具LiteIDE使用方法整理

安装 参考github的说明 添加GOPATH 创建workspace 创建新文件 运行程序 Liteide中运行程序有两种方式: FR(FileRun)是编译并运行单个文件,可以使用Shift + Alt + R快捷键; BR(BuildAndRun)是编译运行整个项目,可以使用Command + R快捷键。 编译运行单个文件和编译运行整个项目的区别在于: 编译运行整个项目的时候,只允许一个源文件中有main函数; 编译运行单个项目的时候,允许多个源文件包含main函数,运行的时候并不会出现报错。 使用go get/install安装包 一些快捷键 功能 快捷键 跳转到函数声明 command + shift + j 自动格式化代码(保存文件) command + ...阅读全文

博文 2018-07-22 00:30:02 -beyond

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

Golang 2018.1.2激活及使用技巧

对于做Java开发的同学使用最熟练的开发工具应该当属Eclipse了吧,但是做到后面的话一般都会转用Intellij Idea。至于转用Intellij有什么好处我就不赘述了,简言之就是功能强大,使用便捷,能够大大提升我们的工作效率。 由于目前工作主要用Go语言进行底层开发,所以采用了GoLand开发工具,它跟Idea一样同为JetBrains公司的产品,本篇主要介绍下GoLand.2018.1.2的激活及其常用的使用技巧。 GoLand.2018.1.2激活 1、下载GoLand并安装 https://pan.baidu.com/s/1vPClabBF8K8xvOFHfkrSyQ 2、拷贝JetbrainsCrack.jar至安装目录下的bin 以我的安装目录为例:C:\Program F...阅读全文

博文 2018-08-05 00:30:01 qiangjiyi

How Stacks are Handled in Go

文章从C中的线程栈引入问题,讲述Go的处理方式。 第一阶段处理方式:Segmented stacks(分段栈); 现阶段处理方式:Stack copying 想了解 Goroutine 、 Stack 和 GC 内部实现的可以看看这篇文章以及相关文章 [1.How Stacks are Handled in Go](http://blog.cloudflare.com/how-stacks-are-handled-in-go/) [2.Contiguous stacks](https://docs.google.com/document/d/1wAaf1rYoM4S4gtnPh0zOlGzWtrZFQ5suE8qr2sD8uWQ/pub) [3.Conve...阅读全文

Gogland EAP 4发布

上班第一天,就收到Gogland EAP 4在2月1日的升级提示,接口实现的改进非常明显,注意快捷键是“command+I”(而不是官网说的“ctrl+0”)感觉不错: ![gogland 163.12024.20.png](http://studygolang.qiniudn.com/170203/1430b0baadc377efd72a8d768af2b8b5.png) 除了按照提示升级,还可以直接官网下载: + [Mac OS X](http://download.jetbrains.com/go/gogland-163.12024.20.dmg ) + [Windows](http://download.jetbrains.com/go/gogland-163.12024...阅读全文

golang 结构体

1. 定义 结构体是将另个或者多个任意类型的命名变量组合在一起的聚合数据类型。 2. 成员变量 访问控制机制 如果一个结构体的成员变量名称是首字母大些的,那么这个变量是可导出的(即在其他包可以访问到)。 一个结构体可以同时包含可导出和不可导出的成员变量 type A struct { Hour int //可导出 minute int //不可导出 } 限制 命名结构体类型s不可以定义一个拥有相同结构体类型s的成员变量,也就是一个聚合类型不可以包含它自己。但是s中可以定义一个s的指针类型,即*s。如下: type B struct { value int //Next B //错误 Next *B //正确 } 3. 结构体比较 如果结构体的所有成员变量都可以比较,那么这个结构体是可以比较的...阅读全文

博文 2018-06-30 18:34:44 百味纯净水

Go语言开发(十)、GoLand常用快捷键

Go语言开发(十)、GoLand常用快捷键 一、Goland快捷键设置 GoLand支持各种编辑器的快捷键映射:File->Settings->Keymap 二、GoLand常用快捷键 1、查询快捷键 CTRL+N 查找类 CTRL+SHIFT+N 查找文件 CTRL+SHIFT+ALT+N 查找类中的方法或变量 CTRL+B 快速打开光标处的类或方法 CTRL+ALT+B 找所有的子类 CTRL+SHIFT+B 找变量的类 CTRL+G 定位行 CTRL+F 在当前窗口查找文本 CTRL+SHIFT+F 在指定窗口查找文本 CTRL+R 在 当前窗口替换文本 CTRL+SHIFT+R 在指定窗口替换文本 ALT+SHIFT+C 查找修改的文件 CTRL+E 最近打开的文件 F3 向下查找关...阅读全文

博文 2018-10-07 18:35:14 天山老妖S

终端文本编辑器 Micro-Editor

Micro 是一款简单易用、直观的终端文本编辑器。 主要特性: * 易于使用 * 常用快捷键(ctrl-s, ctrl-c, ctrl-v, ctrl-z...) * 鼠标操作支持友好 * 交叉平台 * 语法高亮显示 ,支持超过 75 种语言 * 支持多种配色方案 * 搜索和替换 * 撤消和重做 * Unicode 支持 * 拷贝和粘贴与系统剪贴板 * 小而简单 * 可定制 效果图: ![Screenshot](http://static.oschina.net/uploads/img/201604/19151846_ANPI.png...阅读全文

mac unity3d api获取不到问题

unity3d 安装了一个多月了,一直忙,也没时间了解,一个demo写了一个月了,还没搞完,哈哈。今天突然想起学习中遇到一个棘手的问题,api帮助文档获取不到。当时google了一下,是5.0的一个官方bug。unity里api文档查找策略是优先查找本地,本地找不到会访问官方api帮助文档。由于5.0的访问地址进行了调整,本地api文档路径没有变,导致无法获取本地文档,官方的路径也是错误的。下面贴出解决办法,本人是在macbook上操作的,所以windows要调整路径。 #####(一)查看unity帮助文档下载路径 unity>help>Scripting Reference ``` file:///Applications/Unity/Unity.app/Contents/...阅读全文

Goglang编辑器快捷键

//来源:https://www.jetbrains.com/help/go/getting-started-with-gogland.html//注:这些是我按自己的理解从官网翻译来的,英文不够好,有不对的地方还请各位指正~1.输入结束(切换下一行):Ctrl+Shift+Enter2.查看注释:Ctrl+Q.3.跳到定义:Ctrl+B、ctrl+鼠标左键.4.查看当前文件内定义的成员和结构:Ctrl+F125.重命名:Shift+F6. (点击2次可以直接编辑名字,refactor可同步修改其它引用到的地方)6.查找工程内该搜索词的所有引用:Ctrl+Alt+F7(windows下,也可用Alt+F7直接在窗口下查看)(更多信息或操作:Ctrl+Shift+Alt+F7)7.在编辑器输入...阅读全文

博文 2017-09-26 09:40:05 gohl

Go 程序在 macOS 上的打包功能

这篇文章简单地说明了如何在 macOS 上打包一个 Go 的程序,包括引用或者不引用外部资源。作为一个原生的 Cocoa 程序它是可以下载、安装和运行的。开发过程并不需要 XCode,cgo 或者其他特殊的库文件。 在此文章结尾处,你的 Go 程序将会被打包进一个 `.app` 文件,成为一个拖放安装的只读 DMG 文件。这也适用于其他非 Go 语言的程序。 关于这个端到端的解决方案的主题还有其他很多的指导文章,有的讲的比我想要做的内容多很多,有的又是采用不同的方式,而我想呈现给你的是如何将文件打包的过程。 **要求**:你必须要有一个 macOS。此方法不会在 Windows 或者 Linux 上生效。事实上,它也可能生效,但是你必须要手动或者借助某些疯狂的工具来制作和 macOS 相关的...阅读全文

怎么用notepad++配置go语言开发环境

怎么用notepad++配置go语言开发环境。原文 http://www.oschina.net/question/565065_57085 和 http://studygolang.com/articles/2371 一、准备工作: 1、安装go语言; 2、将go/bin目录加入环境变量; 3、安装notepad++; 二、配置notepad++支持go语言语法高亮 1、下载notepad++的go语言支持包(http://notepad-plus.sourceforge.net/commun/userDefinedLang/go.zip); 2、将文件userDefineLang_Go.xml内容copy至Application Data下Notepad++目录的userDefineLa...阅读全文

博文 2015-07-23 21:00:03 tjzzy

golang 读写文件(一)

使用os的方式(会重写文件) package main import ( "fmt" "os" "time" ) func main() { f, err := os.OpenFile("/tmp/logs/test.log", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777) //linux 路径 /*f, err := os.OpenFile("D:/tmp/logs/test.log", os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0777)*/ //windows路径 if err != nil { fmt.Printf("open err%s", err) return } defer f.Close() //资源必须释放,函数...阅读全文

博文 2016-07-29 10:00:01 wtf0215-golang

Go语言-Windows开发环境搭建

由于实验室项目的需要,我今天开始学Go语言。 首先介绍Go语言开发环境的搭建,我的环境是在Windows下搭建,Go语言包推荐.msi安装包,我用的是go1.3.windows-386.msi ,原因很简单,.msi安装会自动配置环境变量,当然也可以用.zip包然后自己配置环境变量。IDE开发环境有两种选择:一是liteIDE,另一个是给eclipse下载goclipse插件。我选择的是liteIDE,下面我介绍下我今天搭建Go开发环境的小小经验总结。。。 1.下载Go语言安装包。 地址:https://code.google.com/p/go/downloads/list 我选择的是go1.3.windows-386.msi ,然后点击安装即可,一直下一步》下一步》(我默认安装在C盘(C:...阅读全文

sublime_go快捷键设置

1.安装sublime text 并打开,Ctrl+ · ,并在命令行输入如下命令按Enter( Package Control的安装) import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http:...阅读全文

博文 2016-04-19 18:00:02 xiaosevenliang

ubuntu 14.04 下配置 Go 1.51

1.最简单的直接的方式(不用设置GOROOT) - 下载 归档文件 并解压到 /usr/local/go/ - 设置环境变量 - 设置系统级的 gedit /etc/profile # 在最末尾加上下面这一行 export PATH=$PATH:/usr/local/go/bin - 或者设置用户级别的 export PATH=$PATH:/usr/local/go/bin 加到 $HOME/.profile 文件中. - 注销 2. 安装到自定义位置(如 $HOME/go ) - 下载 归档文件 并解压 - 添加下面环境变量到 $HOME/.profile 文件中 export GOROOT=$HOME/go export PATH=$PATH:$GOROOT/bin - 注销 3. 安装...阅读全文

博文 2015-09-28 03:00:05 roger9567

Go学习笔记之:变量

Go是静态类型语言,变量是有明确类型的。编译器会检查函数调用中,变量类型的正确性。 使用var关键字来定义变量。 Go 的基本类型有: bool string int int8 int16 int32 int64 uint uint8 uint16 uint32 uint64 uintptr byte // uint8 的别名 rune // int32 的别名 代表一个Unicode码 float32 float64 complex64 complex128 看看下面的例子 package main import "fmt" func main() { // `var` 关键字用来定义一个或者多个变量 var a string = "initial" fmt.Println(a) // 你...阅读全文

msgpack在java和go中序列化的区别

结论: 对象(结构体)在不同语言环境下,使用msgpack序列化结果有不同 Go结构体,序列化后类似map java,类似Array 目前这个请客导致Golang的server 和 java的client 无法简单实用统一的对象(结构体)来进行通讯 比如Go server端定义: type UserStruct struct { Name string ID int32 } java 的客户端定义 public class UserStruct { public String Name; public int ID; } 不知道有没有方法能统一这2种编码方...阅读全文

博文 2015-05-12 20:00:05 咖啡伴侣

Go语言开发工具 LiteIDE x12 发布

GO语言开发工具liteide x12发布,增强对GO1的支持。 LiteIDE项目: 操作系统: Windows / Linux x86 / Linux x86_64 / MacOS X 10.6 项目主页: http://code.google.com/p/golangide 项目源码 : http://code.google.com/p/liteide 讨论组: http://groups.google.com/group/liteide-dev 下载链接: http://code.google.com/p/golangide/downloads/list更新记录: http://code.google.com/p/golangide/wiki/changes快捷键: http://c...阅读全文

博文 2014-11-15 13:00:11 visualfc

Golang的文件处理方式-常见的读写姿势

Golang的文件处理方式-常见的读写姿势 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。 在 Golang 语言中,文件使用指向 os.File 类型的指针来表示的,也叫做文件句柄。注意,标准输入 os.Stdin 和标准输出 os.Stdout ,他们的类型都是 *os.File 哟。在任何计算机设备中,文件是都是必须的对象,而在 Web编程中,文件的操作一直是 Web程序员经常遇到的问题,文件操作在 Web应用中是必须的,非常有用的,我们经常遇到生成文件目录,文件(夹)编辑等操作。 一.文件的读取姿势 1 歌曲:我有一只小毛驴 2 歌手:碧瑶 3 专辑:《瑶谣摇》 4 发行时间:2014-03-18 5 词:付林 6 曲:付林 7 歌词: 8 我有一只小毛驴 9 我从...阅读全文

博文 2017-11-08 06:00:01 yinzhengjie

go程序panic导致core时的处理问题

如果我想go程序在产生panic导致程序core时,统一去刷新日志后程序再退出,要怎么实现呢? 之前c++程序是可以去捕捉core时产生的信号来进行这些处理,使用go也尝试使用这种方式,设置export GOTRACEBACK=crash的环境变量,并且捕捉信号进行处理,但是试了下会产生core文件,但是捕捉不到信号。 现在的处理方式是在所有的携程函数中定义一个defer 去进行这些刷日志操作,当携程panic导致core或者正常退出时都会去刷日志这个操作,基本也能满足需求,但是需要在每个携程里面写defer去干这个事情,感觉比较麻烦。 所以在这里请教下大神们有没有更好的处理方式,在程序core时去做一些特殊的操作,谢...阅读全文

golang 添加 gosublime

1:安装golang环境 2 安装Package Control 下载Package Control.sublime-package 打开sublime ,preferences->browse Package->返回上一级Installed Packages,将下载的东东解压后拷进去就可以了,注意是浏览器中文件拷贝! 重启 Sublime Text 2,如果在 Preferences -> Package Settings中见到Package Control这一项,就说明安装成功了 3 安装GoSublime Package插件 这个插件的源代码在 https://github.com/DisposaBoy/GoSublime,不需要手工下载,按照下面的操作即可完成安装。 GoSublim...阅读全文

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

使用Sublime text 3打造一个小巧但强大的Go语言开发IDE

使用Sublime text 3打造一个小巧但强大的Go语言开发IDE 最近在学习GO语言,网上找了一下GO语言的IDE,发现GO语言目前没有一个专业的IDE,都是一些各种插件来实现的,由于go的特性: 开发过程中需要设置GOPATH 用到第三方的包又要使用go get 运行的时候要用go run 打包的要使用go install 交叉编译的时候还要配置GOARCH GOOS go build 试了很多朋友分享的工具都很不好用,试用了一下Jetbrains的Goland Early build version,发现很多Bug,没有交叉编译,无法go get,并不能满足开发、打包、分发的需求,不过Goland的代码提示还是特别棒的,希望以后正式版能够做的更好。 打造自己的Go语言开发IDE 好...阅读全文

博文 2017-08-05 04:05:08 JiaBoos

Go MVC框架 WeMVC

WeMVC是一个用go语言开发的简单的高性能MVC框架。它有以下特色: 1. 路由采用 [https://github.com/julienschmidt/httprouter](https://github.com/julienschmidt/httprouter)的 算法并加以适当改进; 2. 特有的Action处理方式:Action方法名的处理采用[Http Method]+[Action Name]方式。例如程序中有个路由规则 wemvc.Route("/user/:action", User{}) 。当以GET方式访问http://localhost:8080/user/login时,路由器捕捉到HttpMethod是Get,Action是logi...阅读全文

Go-Maps

语法汇总 前面介绍的array、slice都是顺序性列表,本节的map则是无序的。 这个map和C/C++/Java的map一样,在Python中称为字典/dictionary。但Golang中map的用法更符合脚本语言的特点,和Python很像。 涉及的主要语法点: var the_map map[string]int the_map := make(map[string]int) the_map := map[string]int {key:value, ...} value, ok := the_map[key] 示例-基本用法 下面这个例子给出了map的声明方法。但通常并不这么使用,因为这种声明之后必须要调用make()初始化之后才可赋值,与其这样,不如直接:= make()这种方式...阅读全文

博文 2016-08-31 15:00:05 u013344915