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

Go与GUI——GO语言的图形界面Walk

GO没有原生的界面库,所以不能直接用来写GUI界面。但最近互联网上已经涌现出不少成熟、好用的第三方界面库。使用它们,就同样可以写出同C#、C++的界面。而且效率还更胜一筹。 关于Walk界面库(官方介绍): Walk是一个写给Golang的Window应用程序库套件,它主要用于桌面GUI的开发,但也有更多的东西。 Part One:安装Walk 在浏览这部分前,请确定已经配置安装完毕go语言的环境。如果没有,可以参考go官网的Install帮助。另外,注意:这个Walk库只能运行在Go 1.1.x及以上。 要安装Walk很简单,只要运行命令:go get github.com/lxn/walk 等待命令执行完毕,这时候检查GOPATH的src与pkg下,是否有符合自己计算机环境的walk目录...阅读全文

Golang flag包使用详解(一)

概述 flag包提供了一系列解析命令行参数的功能接口 命令行语法 命令行语法主要有以下几种形式 -flag //只支持bool类型 -flag=x -flag x //只支持非bool类型 以上语法对于一个或两个‘-’号,效果是一样的,但是要注意对于第三种情况,只支持非bool类型,原因是碰到如下情况时 cmd -x * *为0,false有可能表示一个文件名或文件,也有可能表示x标签的值为0或false,会产生二义性,因此规定第三种只支持非bool类型。对于整形flag,合法的值可以为1234, 0664,0x1234或负数等。对于布尔型flag,可以为1, 0, t, f, T, F,true, false, TRUE, FALSE, True, False等 命令行参数解析方法 使用f...阅读全文

博文 2015-06-17 20:03:05 thulpf

golang中os/exec包用法

exec包执行外部命令,它将os.StartProcess进行包装使得它更容易映射到stdin和stdout,并且利用pipe连接i/o. func LookPath(file string) (string, error) //LookPath在环境变量中查找科执行二进制文件,如果file中包含一个斜杠,则直接根据绝对路径或者相对本目录的相对路径去查找 func main() { f, err := exec.LookPath("ls") if err != nil { fmt.Println(err) } fmt.Println(f) // /bin/ls } type Cmd //表示一个正在准备或者正在运行的外部命令 type Cmd struct { Path string //运...阅读全文

博文 2015-06-17 20:02:21 chenbaoke

golang在Windows下Sublime Text开发调试环境的配置

一、前言 近期本人有工作调动,进入了一个全新的领域[golang]服务端开发。在此写下本文,希望给那些没接触过golang开发调试环境及还在犹豫选择那家golang IDE而纠结的朋友们一点点帮助,如果你从中得到了受益并且同时拥有博客园账户的话,衷心希望能得到你的一个小小[推荐]以资鼓励。 本人操作系统为Windows 8.1 64bit,开发工具选择如下:go1.4.2.windows-amd64Sublime Text 2(插件GoSublime/GoGdb) gdb、gcc(安装mingw-w64后即可包含) git 二、golang安装 下载你需要的golang版本,本人下载go1.4.2.windows-amd64.zip解压到c:\盘 = 配置golang环境变量 = GOARC...阅读全文

博文 2015-03-31 03:00:00 highend

Go圣经中文版

Go圣经中文读书笔记(你懂的): [http://golang-china.github.io/gopl-zh/](http://golang-china.github.io/gopl-zh/) ![image](http://golang-china.github.io/gopl-zh/cover_small.jpg) **从源文件构建:** 1. 运行go get github.com/golang-china/gopl-zh, 获取 源文件 2. 运行npm install gitbook-cli -g, 安装 GitBook 命令行工具 3. 运行go generate github.com/golang-china...阅读全文

go第三方库的安装例子

go第三方库的安装 设置环境变量GOPATH=c:\go\code 在c:\go\code下创建源代码目录src 进入c:\go\code\src 装第三方库命令 git clone git://github.com/alphazero/Go-Redis.git redis 可以在任意目录执行安装redis go install redis 安装后再c:\go\code目录下生成一个pkg目录并且在目录下生成redis.a 可以在在c:\go\code\src下生成目录文件xn 结构如下 文件内容如下 xn.go package xn import ( "fmt" ) func Helloworld(){ fmt.Println("xn包内的Helloeorld函数") } func xx(...阅读全文

博文 2014-11-29 22:00:10 anlun

golang 生成进程,执行进程

1.生成进程 package main import "fmt" import "io/ioutil" import "os/exec" func main() { //我们将从一个简单的命令开始,没有参数或者输入,仅打印一些信息到标准输出流。exec.Command 函数帮助我们创建一个表示这个外部进程的对象。 dateCmd := exec.Command("date") //.Output 是另一个帮助我们处理运行一个命令的常见情况的函数,它等待命令运行完成,并收集命令的输出。如果没有出错,dateOut 将获取到日期信息的字节。 dateOut, err := dateCmd.Output() if err != nil { panic(err) } fmt.Println("> d...阅读全文

博文 2015-04-21 03:00:01 benlightning

windows下用visual studio code 调试go代码

http://www.golangtc.com/download下载安装包或压缩包 配置环境变量 配置GOROOT: 配置PATH:在PATH最后添加 配置GOPATH:GOPATH的作用请自行百度,具体目录可以自行定义 需要的扩展插件 代码自动完成(使用gocode) 快速提示信息(使用godef) 跳转到定义(使用godef) 搜索参考引用(使用go-find-references) 文件大纲(使用go-outline) 重命名(使用gorename) 保存构建(使用go build和go test) 代码格式化(使用goreturns或goimports或gofmt) 调试代码(使用delve) 安装扩展(如果使用visual studio code 请略过此步) 代码补全扩展,在命令...阅读全文

博文 2016-02-26 03:00:02 eric-z

golang 命令行处理

1.命令行参数(命令行参数是指定程序运行参数的一个常见方式。例如,go run hello.go,程序 go 使用了 run 和 hello.go 两个参数。) package main import "os" import "fmt" func main() { //os.Args 提供原始命令行参数访问功能。注意,切片中的第一个参数是该程序的路径,并且 os.Args[1:]保存所有程序的的参数。 argsWithProg := os.Args argsWithoutProg := os.Args[1:] //你可以使用标准的索引位置方式取得单个参数的值。 arg := os.Args[3] fmt.Println(argsWithProg) fmt.Println(argsWithou...阅读全文

博文 2015-04-21 03:00:01 benlightning

Go程序如何安全退出(CTRL+C)

http://m.oschina.net/blog/125853 如果是命令行程序需要退出, CTRL+C是最直接的方法. C语言如何处理CTRL+C CTRL+C会向命令行进程发送中断信号, 在C语言的中的signal函数可以注册信号的处理函数. signal函数的签名如下: void (*signal(int sig, void (*func)(int)))(int); 比如, 我们要处理CTRL+C对应的SIGINT信号: #include #include #include void sigHandle(int sig) { switch(sig) { case SIGINT: printf("sig...阅读全文

博文 2014-10-20 16:00:00 leonpengweicn

用Go写Windows桌面应用 - 使用Form

几个月以前看到了Go的消息,读完入门PPT之后,便有种感觉,这就是我想象中的语言。语法简单,写起来手感极好,设计则处处透着简洁。 随后便开始用它代替python写一些常用小工具,堪称得心应手。几个月以后,日益离不开了,再用别的语言时总觉得缺了点什么。 我很喜欢写桌面应用,之前一直用C++,但实在不喜欢它那复杂的设计,而且也没有找到合心意的UI库。此时心里冒出了一个念头,用Go写一套UI库。很大胆,很冒险,甚至很二。很多人都提醒到,UI库这种庞大的东西靠一个人是不可能完成的。我也经常在挣扎,但还是没忍住这股冲动,我动手了! 从零开始封装win32 api,工作量挺大的,但好在已经有很多前辈已经在C++里面做过同样的事情了,所以倒也还顺利。 好了,话不多说,就先看看代码吧!是骡子是马拉出来溜溜。...阅读全文

博文 2014-10-06 08:56:32 AllenDang

golang日志库glog解析

##glog简介 glog是著名的[google开源C++日志库glog](http://code.google.com/p/google-glog)的golang版本,glog是一个轻量级的日志库,上手简单不需要配置文件并且稳定高效,但是可以自定义控制的内容就少了。 glog主要有以下几个特点: 1. glog有四种日志等级INFO < WARING < ERROR < FATAL,不同等级的日志是打印到不同文件的,低等级的日志文件中(INFO)会包含高等级的日志信息(ERROR) 2. 通过命令行传递参数 --log_dir指定日志文件的存放目录,默认为os.TempDir() 3. 可以根据文件大小切割日志文件,但是不能根据日期切割日志文件 4. 日志输出格式是固定的(Lmmdd hh...阅读全文

博文 2016-06-11 16:32:06 shanks

golang命令行库cobra的使用

简介 Cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序。下面是Cobra使用的一个演示: Cobra提供的功能 简易的子命令行模式,如 app server, app fetch等等 完全兼容posix命令行模式 嵌套子命令subcommand 支持全局,局部,串联flags 使用Cobra很容易的生成应用程序和命令,使用cobra create appname和cobra add cmdname 如果命令输入错误,将提供智能建议,如 app srver,将提示srver没有,是否是app server 自动生成commands和flags的帮助信息 自动生成详细的help信息,如app help 自动识别-h,--help帮助flag...阅读全文

博文 2016-07-29 10:00:01 borey

超详细Go语言Windows安装全攻略

1,下载go语言windows安装包,你可以直接到官网下载,也可以从本站云盘下载,由于国内被封杀,go语言官网 经常会打不开 win32版本:链接:http://pan.baidu.com/s/1eQlIT2M 密码:qosr win64版本:链接:http://pan.baidu.com/s/1qWmK7wg 密码:r5z7 2.双击安装,默认安装,直接点“下一步”就行,默认是安装在c:\go,你也可以修改成其它目录,目录最好不要包含 中文名 3.设置系统环境变量GOROOT,并把%GOROOT%\bin;加入到path环境变量中去 XP下操作如下 win7下操作如下 4.在命令行模式下输入 go,如果输出以下字符,go语言就基本安装成功了 5. 设置GOPATH环境变量,在c:\新建一目...阅读全文

博文 2015-04-17 03:00:01 onlycoder

go lang初试之hello world

第一个go lang程序——hello world package main import "fmt" func main(){ p("rocky") } /* block comment */ func p(name string){ fmt.Println("Hello," + name) } // single line comment // func p(){ // fmt.Println("Hello world!") // } 一些简单的语法特性 上面的简单的代码,用到了go lang的如下一些特性: 代码第一行写明package;上例中,使用一个文件单独运行的程序必须放在package main下面,否则在go run运行时会报错:”go run: cannot run non...阅读全文

博文 2014-11-26 16:00:03 石头上的常春藤

区块链开发(一)搭建基于以太坊go-ethereum的私有链环境

通过各方资料了解学习之后,决定自己开始搭建基于以太坊go-ethereum的私有链环境。由于本人的电脑系统为win8,为避免window环境出现过多莫名其妙的问题,特意通过vm搭建了一台ubuntu16.04版本的虚拟系统。以下内容均基于ubuntu16.04系统。 go-ethereum客户端 下载地址&参考手册 首先,可以查看一下go-ethereum项目在git上的地址: https://github.com/ethereum/Go-ethereum 、 可以在点击项目上的wiki标签,也可以通过一下地址访问wiki: https://github.com/ethereum/Go-ethereum/wiki/Building-Ethereum 在wiki页面选择ubuntu系统的安装说...阅读全文

博文 2016-11-07 05:00:03 wo541075754

linux 下 安装go

首先肯定是下载资源包了,链接汇总在http://www.golangtc.com/download,我用的是 http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 这个版本的镜像地址。 按照说明cd 进入 /usr/local 目录,然后执行 wget -c http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 通过命令行下载资源包,wget是一个下载工具,-c是支持断点续传的参数。 下载完成后,解压 tar -C /usr/local -xzf go1.4beta1.linux-amd64.tar.gz 然后再cd 进入 go/src 目录,执...阅读全文

博文 2015-04-19 03:00:01 ilahsa

Go 中使用 INI 作为配置文件

想必大家都用过 Go 标准库中的 flag 包, 这个是一个十分好用的命令行参数解析库, 但是标准库中并没有关于配置文件解析的包, 官方一般是使用 json 作为配置文件的, 但是对于一些比较简单的情况, 没有复杂的嵌套的情况, 使用 json 作为配置文件, 书写起来还是有点麻烦 (主要是花括号和冒号引号什么的). 于是, 正好有一个项目需要实现一个读取ini配置文件的模块, 我就按照类似 flag 的 api 写了一个 ini parser. 1 go get -u github.com/c4pt0r/ini 使用方法: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 package main import ( "log" "github....阅读全文

GO语言基础环境搭建以及HelloWorld

Go语言(golang)是Google推出的一种全新的编程语言。关于其详细介绍请自行百度,直接介绍基础开发环境配置。 1、安装GO安装包。 官方下载地址应该是 https://code.google.com/p/go/downloads/list 不过如果你在被墙了的话应该是无法访问该地址,这里是用的版本是go1.3.windows-386.msi,可直接百度文件名下载安装即可。 2、配置环境变量。 这里同Java环境变量配置很相似,配置项稍多。具体如下: 新建 变量名:GOBIN 变量值 :D:\Program Files (x86)\Go\bin 新建 变量名:GOARCH 变量值:386 新建 变量名:GOOS 变量值:windows 新建 变量名: GOROOT 变量值:c:\go ...阅读全文

博文 2015-05-27 16:00:00 PrinceTerence

Golang 守护进程

package main import ( "fmt" "os" "os/exec" "path/filepath" ) func main() { fmt.Println(os.Getppid()) if os.Getppid() != 1 { //判断当其是否是子进程,当父进程return之后,子进程会被 系统1 号进程接管 filePath, _ := filepath.Abs(os.Args[0]) //将命令行参数中执行文件路径转换成可用路径 cmd := exec.Command(filePath) //将其他命令传入生成出的进程 cmd.Stdin = os.Stdin //给新进程设置文件描述符,可以重定向到文件中 cmd.Stdout = os.Stdout cmd.Std...阅读全文

博文 2015-02-11 19:00:02 未来还没来

让golang在Raspberry Pi上飞一会

最近在玩2样东西,一样是go语言(golang),一样是Raspberry Pi(树莓派)。那么能在Raspberry上运行go语言程序吗? Golang的文档上说是支持多平台的,其中也包括了ARM,看来有戏了,兴冲冲打开http://code.google.com/p/go/downloads/list (golang编译器的下载页面) ,却发现没有arm平台的二进制大包下载。所以arm平台下的需要下载源码自己编译。 Raspberry上编译前准备及配置 一。俗话说巧妇难为无米之炊,要编译源码先得下源码,下载后这里解压到 /home/pi/go 目录下。 二。确认需要的工具系统已经具备了:mercurial 、gcc 和 libc6-dev 。如果不确定有没有只需输入下列命令: sudo ...阅读全文

博文 2014-10-04 19:26:59 quanpower

Ubuntu 14.04下安装Golang以及LiteIDE

安装配置Golang 可以从Golang中国这里下载,下载好后使用sudo tar -xvzf ~/Downloads/go*.linux-amd64.tar.gz -C /usr/local/命令将其解压到/usr/local/位置,然后配置环境变量。 使用命令vim ~/.bashrc打开.bashrc文件,然后在最后追加下面内容: export GOROOT=/usr/local/go export PATH=$PATH:$GOROOT/bin export GOPATH=~/Go 然后使用命令source ~/.bashrc使其生效,需要注意的是,GOPATH这个环境变量指的是之后需要存放源码的目录,我使用的是~/Go目录 使用go version以及go env等命令来查看是否正确...阅读全文

配置 VIM 的 Go 语言开发环境

本文是针对像我这样的 VIM 小白而写的,所使用的 VIM-GO 插件虽然步骤简单但不够详细,特写此文以做记录和分享。欢迎各位大神纠正补充! 特别说明 本博文不是 Go 语言环境搭建教程,只是 VIM 插件部分的配置教程。如果需要了解如何下载及安装 Go 语言,请移步 配置 Go 语言开发环境的前半部分。 VIM 插件地址:github.com/fatih/vim-go 为了方便墙内用户,本博文所有要下载的 ZIP 包已经直接打包好:下载地址 安装 Pathogen Pathogen 是 VIM 的一个插件管理器,很多插件都支持它,所以不要怕麻烦,因为安装它的步骤非常简单。 前往 Pathogen 首页,找到下方的最新版 Package ZIP 包下载链接。 下载解压后你会得到一个名称为 a...阅读全文

博文 2015-06-12 03:00:00 davygeek

go语言Notepad++简易开发环境搭建(windows)

1.下载安装go语言:https://golang.org/dl/选择对应的平台,建议使用msi安装包,这个会帮你配置好环境变量(也许需要重启)对应的环境变量有: GOROOT - C:\Go\PATH - ;C:\Go\bin 2.安装Notepad++不多说了 3.notepad++安装插件:GOnpp 运行后右侧会显示运行结果 4.语法高亮(1)下载notepad++的go语言支持包(http://notepad-plus.sourceforge.net/commun/userDefinedLang/go.zip)(2)解压go.zip,得到:userDefineLang_Go.xml go.xml(3)打开userDefineLang_Go.xml文件,去掉文件 第一行和最后一行的注...阅读全文

博文 2015-02-12 03:00:00 solohac

Go语言的参数解析(flag)

flag参数解析,我原以为会了,结果今天发现,原来比我印象中还强大些. 索性记一下. 第一个例子是常见用法: //Flag例1 //author:Xiong Chuan Liang //date:2015-4-10 package main import ( "flag" "fmt" "os" ) var ( levelFlag = flag.Int("level", 0, "级别") bnFlag int ) func init() { flag.IntVar(&bnFlag, "bn", 3, "份数") } func main() { flag.Parse() count := len(os.Args) fmt.Println("参数总个数:",count) fmt.Println("...阅读全文

博文 2015-04-14 19:00:10 xcltapestry

[golang]GO语言编写的基于UDP协议的简易聊天软件

初学GO不到两周,本着熟悉语言的目标写了这个小程序,漏洞很多,实现上写的也有些渣渣,欢迎大家阅读指点。 下载地址:https://github.com/yinxin630/gochat 简单思路描述: 0、服务端监听客户端请求,完成会话转发的任务 1、服务端采用心跳包维护用户在线状态 2、客户端通知服务端自己的监听地址,创建服务端-客户端信息通道 服务端: package main import ( "fmt" "net" "os" "strconv" "time" ) //用户信息 type User struct { userName string userAddr *net.UDPAddr userListenConn *net.UDPConn chatToConn *net.UDPC...阅读全文

博文 2014-11-11 06:00:06 u011229962

LiteIDE 在 Windows 下为 Go 语言添加智能提示代码补全

本文以 Windows 7 64 位为环境,go1.4.2.windows-amd64 和 liteidex27.2.1.windows-qt5 为例。 成功搭建开发环境后,发现 LiteIDE 没有代码智能提示,这极为不方便啊~ 在 Github nfs/gocode 下载 gocode 源代码,重新编译成 exe 文件,覆盖 LiteIDE 的就行。 1,将下载的 gocode-master 解压,我放在了 C:\ 根目录下。 解压后内容如图 1 所示: 图 1 nfs/gocode 内容 2,在 Windows 命令行运行如下命令: C:\gocode-master>go build gocode.go autocompletecontext.go autocompletefile.g...阅读全文

博文 2015-05-19 03:00:11 liuning8023

Mac下go环境变量配置

1.0 查看是否存在bash_profile cd ~/.bash_profile 2.0 如果不存在则创建bash_profile Mac环境配置文件 touch ~/.bash_profile 3.0 打开bash_profile open -t ~/.bash_profile 4.0 添加go 环境变量:(等于号后面的为你的项目存储目录) GOPATH=website/apple/apps 5.0 warning:如果因为创建bash_profile 使命令行ls命令失效而造成go语言无法安装请关注 5.1 如上打开bash_profile 并加入环境变量 export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X1...阅读全文

数据传输工具 kcptun

# kcptun TCP流转换为KCP+UDP流,用于**_高丢包 _**环境中的数据传输,工作示意图:

+---------------------------------------+
                |                                       |
                |                KCPTUN                 |
                |                                       |
+--------+      |  +------------+       +------------+  |      +--------+
...阅读全文

Go获取命令行参数及信号量处理

部署golang项目时难免要通过命令行来设置一些参数,那么在golang中如何操作命令行参数呢?可以使用os库和flag库。 golang os库获取命令行参数 os可以通过变量Args来获取命令参数,os.Args返回一个字符串数组,其中第一个参数就是执行文件本身。 1 2 3 4 5 6 7 8 9 10 package main import ( "fmt" "os" ) func main() { fmt.Println(os.Args) } 编译执行后执行 $ ./cmd -user="root" [./cmd -user=root] 这种方式操作起来要自己封装,比较费时费劲。golang提供了flag库,可以很方便的操作命名行参数,下面介绍下flag的用法。 golang fla...阅读全文

博文 2015-08-22 12:00:00 kenkao

Golang程序配置方案小结

Golang程序配置方案小结 七 01 bigwhite技术志 Bool, cobra, config, Cpp, Education, flag, getopt, Go, Golang, ini, Java, json, multiconfig, Perl, POSIX, Ruby, Shell, TOML, twitter, viper, Windows, 命令行选项, 标准库, 配置文件 No Comments 在Twitter上看到一篇关于Golang程序配置方案总结的系列文章(一个mini series,共6篇),原文链接:在这里。我觉得不错,这里粗略整理(非全文翻译)一下,供大家参考。 一、背景 无论使用任何编程语言开发应用,都离不开配置数据。配置数据提供的形式有多样,不外乎命令...阅读全文

go官网的7个例子分析

go 语言或是 golang 的官网首页上有 7 个例子代码,赶脚灰常好,赶脚值得写篇文章简单分析一下 —— 虽然第 6 个例子不是太懂,貌似是个玩游戏的。 hello,世界 package main import "fmt" func main() { fmt.Println("Hello, 世界") } 这是hello,世界程序,要比hello,world其实要难一些,因为里面有中文!windows 下直接运行这个程序一般都有错误或是乱码出现,主要是编码的问题,倒不是程序的问题(请使用 utf-8 编码程序以及终端!)。关于安装以及其他细节可以看这篇文章—— 介绍 windows 下 go 环境的搭建,不仅仅是安装一下的问题。 从这个例子中,可以看出来,go 是通过 package(包)...阅读全文

博文 2014-10-24 11:38:52 陆仁贾

go语言写日志

go语言写日志 go语言有一个标准库,log,提供了最基本的日志功能,但是没有什么高级的功能,如果需要高级的特性,可以选择glog或log4go。 glog是google提供的,类似于google的c++ log库,使用起来非常简单,下面介绍一下;log4go的用法和log4j一样,可配置性比较高。 glog只提供了少数几个选项,通过命令行控制,例如: -log_dir: 日志文件保存目录 -alsologtostderr: 日志写入文件的同时,输出到stderr -v:配置V输出的等级。 glog使用非常简单,只需要import就可以了。glog package的init函数会初始化并启动一个glog 的flushDaemon协程,你只需要使用glog.Info, glog.Warning...阅读全文

博文 2015-01-27 15:00:07 chenglinhust

golang获取命令行参数及环境变量

package main import "fmt" import "os" import "strconv" func main() int{ arg_num := len(os.Args) fmt.Printf("the num of input is %d\n",arg_num) fmt.Printf("they are :\n") for i := 0 ; i < arg_num ;i++{ fmt.Println(os.Args[i]) } sum := 0 for i := 1 ; i < arg_num; i++{ curr,err := strconv.Atoi(os.Args[i]) if(err != nil){ fmt.Println("error happened ,e...阅读全文

类似 go get –u 的命令行参数实现

我们可能需要类似 go get –u …. 这样的方式来实现我们的应用,这时候我们无法简单地使用 flag.Parse 了,而是要用 FlagSet 了, 使用例子如下: package main import ( "flag" "log" "os" ) var () func main() { // 读取命令参数,注意,这里根据执行任务的不同,参数也不一样 // 技术参考: // http://stackoverflow.com/questions/24504024/defining-independent-flagsets-in-golang // http://play.golang.org/p/eaEEx_EReX if len(os.Args) <= 1 { log.Println...阅读全文

博文 2015-12-30 03:00:00 ghj1976

Golang-相对路径问题

先明确golang中几个参数的含义 之前理解错误了导致自己在写路径时出现了一些问题困惑了好久 特此记录 os.Args[0] 这个参数 并不是什么项目执行路径 获取的是命令行执行语句的第一句 以空格为分隔符 与项目执行路径无丝毫关系 --- 之前理解错了真惭愧啊 os.Getwd() 获取的是运行时你当前所在的路径 比如在/etc 目录下 运行/usr/main文件 最终通过Getwd获取到的值是 /etc golang中的相对路径就是根据这个执行路径来相对的 这也就解释了我 go run 和 idea 启动 还有 supervisor启动 却经常找不到资源的原因 因为所在的执行路径都不一定是相同的自然会这样 所以 一般我现在的做法是 如果是go run 直接到目录地下go run 如果是 ...阅读全文

博文 2015-06-17 20:02:36 u012807459

Scala和Go的区别

Keith Morrow作为Scala的支持者,发表了这篇倾向于Scala的文章,主要也是为了反驳一年前 Paul Dix 的文章:why he prefers Go over Node and Scala,Paul Dix认为Go好于Scala的原因在于下面几个方面:并发性, 易理解性, 代码分享和学习难度。之所以时隔一年才有人反驳,一则因为双方不了解,二则可能是随着Go编写的Docker流行,拳头产品的出现让大家对Go刮目相看。 Keith Morrow则认为Go比Scala易于学习是因为Go是一种命令式语言。这相对不习惯函数语言的人来说易于掌握一些。 因为大多数人对于命令式语言比较熟悉,因此毫无疑问在代码共享方面Go要易于Scala。那么,在学校曲线上,命令式语言的人学习函数编程要难一...阅读全文

博文 2014-12-22 09:00:01 working_brain

Go项目的目录结构

项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性,做到统一、规则化比较明确。 1、一般的,一个Go项目在GOPATH下,会有如下三个目录: |--bin |--pkg |--src 其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。 一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可。 对于pkg目录,曾经有人问:我把Go中的包放入pkg下面,怎么不行啊?他直接把Go包的源文件放入了pkg中。 这显然是不对的。pkg中的文件是Go编译生成的,而不是手动放进去的。(一般文件后缀.a) 对于src目录,存放源文件,Go中源文件以包(package)的形式组织。通常,...阅读全文

博文 2016-03-11 10:00:02 zsy

使用Intellij IDEA在Windwos下搭建golang开发环境 (把屎把尿超详细)

之前用golang的时候都是在Mac OS X和Linux下的, 用gvm安装golang,自动设置好相关环境, 安装个Sublime Text安装GoSublime插件即可. 搭建过程算是相当简单的. 现在还到Windows下的时候, 发现继续用Sublime Text来配置开发环境着实要蛋疼得多. 由此转向了Intellij IDEA. 废话不多说下面是整个安装环境的搭建. 另外其实很多网上的搭建教程过于老旧, 已经不再适用. 一. 首先安装golang 可以自己下载源码进行编译, 也可以直接下载二进制包. 我这里下载的是最新的go1.2 r5 64位版(32位系统的同学要知道自己应该下载32位的)地址在此go1.2rc5.windows-amd64.msi 安装过程比较简单, 直接凶猛...阅读全文

Go语言开发环境配置教程及使用

传说go语言的最佳开发环境是苹果的XCODE,我测试的结果确实如此。需要用CGO编译带C代码的go程序的朋友,建议首选苹果的XCODE环境。Windows环境下配置CGO编译非常麻烦,因为Go的文档例子大多以UNIX为例子,所以有些C代码在windows下无法编译,需要修改代码。 我用到的go语言版本是最新的发布版本go 1。点此下载go1.1.2最新版 国人翻译的go官方安装文档的链接: http://code.google.com/p/golang-china/wiki/Install 。这个官方安装文档感觉有些过时了,仅供参考。 还有一个《学习Go语言》中文版可以参考:地址:http://www.mikespook.com/learning-go/comment-page-1/#com...阅读全文

博文 2014-10-09 18:00:03 cometwo

Go by Example 中文版

[gobyexample](https://gobyexample.com/) 应该很多 gopher 都知道。现在有网友翻译成了中文版,可以对照着看看。 Go 是一个被设计用来建立简单,快速和可信赖的软件的开源程序设计语言。 Go by Example 是一个实践性的通过带注释的例子程序去介绍 Go。 [中文版](http://gobyexample.everyx.in/) 查看[第一个例子](http://gobyexample.everyx.in/hello-world/)。以下是例子主题: 你好,世界 值 变量 常量 For循环 if/else 分支 分支结构 数组 切片 关联数组 Range 遍历 函数 多...阅读全文

Go命令行参数解析flag包

go语言提供的flag包可以解析命令行的参数,代码: package main import ( "flag" "fmt" ) func main() { //第一个参数,为参数名称,第二个参数为默认值,第三个参数是说明 username := flag.String("name", "", "Input your username") flag.Parse() fmt.Println("Hello, ", *username) } 编译: go build flag.go 运行: ./flag -name=world 输出: Hello, world 如果不输入name参数: ./flag 则输出: Hello...阅读全文

博文 2015-06-02 03:00:16 baiyuxiong

CLI:使用Go开发命令行应用

文地址 CLI或者“command line interface”是用户在命令行下交互的程序。由于通过将程序编译到一个静态文件中来减少依赖,一次Go特别适合开发CLI程序。如果你编写过安装时需要各种依赖的CLI程序你就知道这个是有多重要了。   在这篇博客中我们将介绍使用Go开发CLI的基本知识。 Arguments    大多数CLI程序都需要输入一些参数。Go 语言将这些参数以字符串slice处理。 var Args []string 查找当前应用的名字。 package main import ( "fmt" "os" ) func main() { // Program Name is always the first (implicit) argument cmd := os.Ar...阅读全文

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

golang执行linux命令

golang exec 执行系统命令 golang 2014-09-25 13:17:44 2779 0 0 exec.Command() 最简单的方法: cmd := exec.Command("/bin/sh/", "-c", "linux命令") 或复杂的, 各个参数都要单独写 cmd := exec.Command("ls", "-l", "-a") package main import ( "bytes" "fmt" "os/exec" ) func main() { in := bytes.NewBuffer(nil) cmd := exec.Command("sh") cmd.Stdin = in go func() { in.WriteString("echo hello ...阅读全文

博文 2016-08-31 17:00:02 zhangym

ubuntu 下源码编译安装go

学习一下Go语言。学习之前,首先要搭建一下Go语言的开发环境,这篇文章主要介绍一下搭建环境的过程。 一、安装Go语言依赖包 Go语言部分功能是用C语言开发的,所以安装Go之前需要安装gcc,make等依赖,ubuntu下的安装命令如下: sudo apt-get install bison ed gawk gcc libc6-dev make 二、获取Go源码 成功安装了Go语言的依赖之后,就需要下载Go语言的源码包,方法比较多:可以通过hg拷贝源码,也可以...阅读全文

博文 2015-03-19 09:00:00 nanfenglei23

Intellij Idea 14编译golang 插件

最近项目实在太赶了,很久没有写过博文了。 公司新配了一台笔记本电脑,原装win8的。于是又从linux回到了windows。不想用win命令行来搞go了,win下太折腾了。还是用一直使用的idea。 golang的插件貌似更新很频繁,都是源码的,所以要自己编译下。 过程如下: 1.下载源码: https://github.com/go-lang-plugin-org/go-lang-idea-plugin/releases/ 2.解压,然后用idea打开。 3.ctrl+alt+shift+s ,打开项目配置,在sdk中选择java jdk 和 intellij plugin plateform 两项。然后在project中,将jdk选为intellij plugin plateform这个...阅读全文

博文 2015-05-04 09:00:01 juepei

LiteIDE下设置GOPATH

Mac下安装Go开发环境可以借鉴之前我的博客:Mac下go语言环境的搭建 http://www.cnblogs.com/ghj1976/archive/2013/01/16/2863142.html 首先当前需要先设置GOROOT GOROOT 是Go安装包的根目录。通常是放在$HOME/go,当然也可以是其他位置。比如我这里Mac下默认是安装在/usr/local/go 下面了。 参考:https://code.google.com/p/golang-china/wiki/Install GOPATH 的设置: 注:这个不是Go安装目录。 参考:https://github.com/astaxie/build-web-application-with-golang/blob/master/...阅读全文

博文 2014-10-27 09:57:44 ghj1976

搭建go开发环境时,出现GoSublime error: MarGo build failed的问题

在安装问go语言开发工具,Sublime Text Build 3083之后,再安装gocode和margo时,在安装margo那一步卡住了,出现了以下问题: GoSublime error: MarGo build failed | > This is possibly a bug or miss-configuration of your environment. | > For more help, please file an issue with the following build output | > at: https://github.com/DisposaBoy/GoSublime/issues/new | > or alternatively, you may sen...阅读全文

博文 2016-04-10 05:00:01 QUBUBING

Golang工具链概览(一)

我们都知道Golang提供了很多功能丰富而强大的命令行工具。但是这么多工具,每一个到底是做什么用的?本文来粗略的聊聊比较常用的几个工具的作用和用法。 gofmt gofmt是一个代码格式化工具,仅针对代码格式进行整理,保证大家的代码格式统一。 附上gofmt前后的效果: golint golint工具是对代码质量的检查,会给出一些最佳实践指引。看下面的代码: 之行golint之后 main.go:8:5: error var SomeError should have name of the form ErrFoo main.go:8:5: exported var SomeError should have comment or be unexported main.go:16:9: if...阅读全文

博文 2015-09-09 19:54:59 长洪