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

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 入门系列(一)Go环境搭建

安装 Go Go语言的优劣,这里就不介绍了,下面直接讲Go 的安装: Go 的官方网站:http://golang.org/(需要FQ软件) 国内下载地址:http://www.golangtc.com/download) 下载对应平台的安装包。注意区分32位还是64位操作系统。 安装包下载完成之后,安装过程很简单,傻瓜式下一步到底就好了。 Go 环境变量 安装go 的时候,安装程序会自动把相关目录写到系统环境。但是如果是zip 的安装,需要自己手动添加。 主要配置以下几个: GOROOT:Go 安装后的根目录(例如:D:\Go),安装过程中会由安装程序自动写入系统环境变量中。 GOBIN:Go 的二进制文件存放目录(%GOROOT%\bin) PATH:需要将 %GOBIN% 加在 PAT...阅读全文

博文 2018-08-13 21:30:02 zhangweizhong

Go 系列教程 —— 35. 读取文件

![reading files](https://raw.githubusercontent.com/studygolang/gctt-images/master/golang-series/golang-read-files.png) 欢迎来到 [Golang 系列教程](https://studygolang.com/subject/2)的第 35 篇。 文件读取是所有编程语言中最常见的操作之一。本教程我们会学习如何使用 Go 读取文件。 本教程分为如下小节。 - 将整个文件读取到内存 - 使用绝对文件路径 - 使用命令行标记来传递文件路径 - 将文件绑定在二进制文件中 - 分块读取文件 - 逐行读取文件 ## 将整个文件读取到内存 将整个文件读取到内存是最基本的文件操作之一。这需要使用...阅读全文

博文 2018-09-04 23:19:49 heyulong

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

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

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...阅读全文

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语言这方面做了规定,这样可以保持一致性,做到统一、规则化比较明确。 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

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

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

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

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

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

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

golang 获取命令行参数

os库获取命令行参数 package main import ( "fmt" "os" ) func main() { // 获取命令行参数 fmt.Println("命令行参数数量:",len(os.Args)) for k,v:= range os.Args{ fmt.Printf("args[%v]=[%v]\n",k,v) } } 打印 go build -o main main.go ./main 张三 20岁 研究生 北京 获取命令行参数个数: 5 args[0]=[./main] args[1]=[张三] xargs[2]=[20岁] args[3]=[研究生] args[4]=[北京] flag包获取命令行参数 package main import ( "flag" "fm...阅读全文

博文 2019-06-26 06:32:39 战神悟空

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 石头上的常春藤

golang log用法

21天精品区块链课程免费学习,深入实战行家带路,助力开发者轻松玩转区块链! >>> package main import ( "log" "os" ) var logger *log.Logger func main() { file, err := os.OpenFile("test.log", os.O_APPEND|os.O_CREATE, 666) if err != nil { log.Fatalln("fail to create test.log file!") } defer file.Close() logger = log.New(file, "", log.LstdFlags|log.Lshortfile) // 日志文件格式:log包含时间及文件行数 log.Pri...阅读全文

博文 2018-09-01 14:33:12 Robin3D

设置GOPATH

使用go语言开发, 环境变量GOPATH的设置是第一步, 我们可以指定一个自己常用的目录, 我个人喜欢使用 /usr/local/src/go_path 全局设置 vi /etc/profile 在文件的结尾加上 export GOPATH=/usr/local/src/go_path 使配置马上生效 source /etc/profile 用户级别设置 vi ~/.bash_profile 在文件的结尾加上 export GOPATH=/usr/local/src/go_path 使配置马上生效 source /etc/profile 临时生效 直接在命令行添加 export GOPATH=/usr/local/src/go_path 这种方式, 在关闭shell或重启机器会失效 配置好之...阅读全文

博文 2017-02-10 14:44:11 yin32167

golang中的string

一个字符串是一个不可改变的字节序列。字符串可以包含任意的数据,但是通常是用来包含人类可读的文本。 len()返回字符串字节数目(不是rune数)。 通过索引可以访问某个字节值,索引大于等于0小于len(str)。越界会panic。索引不是不是对应的字符而是对应的字节,因为有有非ASCII的UTF8字符有多个字节。 s := "hello, world" fmt.Println(len(s)) // "12" 英文字符占一个字节 fmt.Println(s[0], s[7]) // "104 119" ('h' and 'w') 字符串截取与链接 fmt.Println(s[:5]) // "hello" fmt.Println(s[7:]) // "world" fmt.Println(s[...阅读全文

博文 2019-07-02 23:32:41 XITEHIP

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....阅读全文

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

利用 goland 调试你的程序

前言 IntelliJ 编辑器的新成员 GoLand,go开发利器。作为一个现代的编辑器怎么能少了调试这个功能呢? 但是写普通的GO 应用程序没觉得异样。但是对于使用某些框架进行开发, 框架需要在它自己的命令行用参数启动,而不是直接编译运行。这样如果你想直接调试就麻烦了。 开始调试 先来看一个普通程序如何调试 准备 普通的程序,就是在你使用 go build 编译完成之后,可以直接启动运行的。 下面这个程序不需要任何启动参数就可以运行,我们已经打上了断点。 调试 我们只需要点击 main 函数旁边的绿色小箭头,选择 Debug 'go build main.go' 就可以开始愉快的调试了。 进阶 那对于需要参数才能运行的程序该怎么调试呢?下面是需要参数才能启动运行的程序,如果直接调试的话,就...阅读全文

博文 2019-07-22 01:04:16 樱桃老腰子

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

以后台进程方式运行 Go 程序

从 1999 年那时开始我就为 windows 写过服务,一开始用 C/C++,后来用 C#。现在我在 Linux 上用 Go 编写服务端软件。然而我没辙了。更令人沮丧的是,我一开始编写软件所用的操作系统并不是我即将部署所用的操作系统。当然,那是后话了。 我想要在我的 Mac 上以后台进程(守护进程)的方式运行代码。而我的问题也是,我无从下手。 我很幸运在 Bitbucket 上找到了由 Daniel Theophanes 编写的名为 [service](https://bitbucket.org/kardianos/service/src) 的开源项目。通过它的代码我学会了如何在 Mac OS 上创建,安装,启动和停止守护进程。当然,这个项目也支持 Linux 和 Windows。 ## ...阅读全文

博文 2018-04-01 20:39:22 snowInPluto

超详细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

让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

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-2018优秀开源框架和库

作者:承诺一时的美丽链接:https://www.jianshu.com/u/6719426bf97e來源:简书音频和音乐用于操纵音频的库。flac - Native Go FLAC解码器。flac - Native Go FLAC解码器。gaad - Native Go AAC比特流解析器。go-sox - 用于go的libsox绑定。go_mediainfo - 用于go的libmediainfo绑定。gosamplerate - 用于go的libsamplerate绑定。id3v2 - Go的快速稳定的ID3解析和编写库。malgo - 迷你音频库。minimp3 - 轻量级MP3解码器库。mix - 用于音乐应用的基于序列的Go-native音频混音器。mp3 - Native Go...阅读全文

博文 2019-01-25 15:34:48 西门厌

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安装及教程

Golang 中文下载地址:https://studygolang.com/dl Golang English 下载地址:https://www.baidu.com/link?url=dzXYwuV_xyd3TWJFzl7LwsNIzOvPW9IQcgErm_dsccS&wd=&eqid=c3ebdb4700015e50000000055bbc7a92 (没有翻墙工具 所以进步了官网) windows10 不用配置环境变量 GO环境变量配置: $GOROOT=/usr/local/go GO安装目录 $GOPATH=/usr/local/var/www/go GO工作目录 $GOBIN=$GOPATH/bin GO可执行文件目录 $PATH=$PATH:$GOBIN:$GOROOT/bin ...阅读全文

博文 2019-04-29 07:31:36 qq_32034593

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

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-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

GoLang 实现一个最简单的http文件服务器

How to use github 地址:https://github.com/PolluxLee/GoServer 关闭防火墙 运行 GoServer.exe,不要关闭命令行窗口 将本地文件放到 go 文件根目录的 file 文件夹中即可实现内网共享文件 浏览器访问 http://localhost:8080/pollux/,将localhost替换成本地IP地址 GoServer.go package main import ( "log" "net/http" "os" ) func main() { os.Mkdir("file", 0777) http.Handle("/pollux/", http.StripPrefix("/pollux/", http.FileServer(h...阅读全文

博文 2017-04-04 14:51:28 PolluxLee

Golang 执行Python脚本

一、两种方式 通过命令行的方式调用python脚本 github.com/sbinet/go-python 二、实现 1、通过命令行的方式调用python脚本 在golang对jpg图片dpi操作未提供原生的相关接口,只好依赖python脚本达到想要的目的 main.py from PIL import Image as ImagePIL, ImageFont, ImageDraw import base64 import io import sys def main(argv): msg="success" try: base64Str=argv[0] savePath=argv[1] xdpi=300.0 ydpi=300.0 argvLen=len(argv) if argvLen>2...阅读全文

博文 2019-04-25 17:34:50 承诺一时的华丽

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

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...阅读全文

go的hello world

go语言特性: 自动垃圾回收 更丰富的内置类型 函数多返回值 错误处理 匿名函数和闭包 类型和接口 并发编程 反射 语言交互性 一、运行环境下载与安装 也就一个普通软件的下载安装步骤 下载地址:https://golang.google.cn/dl/ 目前版本:go1.12.4.windows-amd64.msi 下载安装“下一步”即可,环境变量等等已经自动配置。 二、安装测试 打开cmd命令行,直接输入:go 出现这种信息即安装成功! image.png 三、编写第一个go语言程序 1、任意选择创建一个目录: 2、编写代码 package main import "fmt" func main() { var name string fmt.Println("请输入你的名字:") fmt....阅读全文

博文 2019-05-03 17:34:39 青空_ec1a

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

数据传输工具 kcptun

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

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

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

类似 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]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

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篇),原文链接:在这里。我觉得不错,这里粗略整理(非全文翻译)一下,供大家参考。 一、背景 无论使用任何编程语言开发应用,都离不开配置数据。配置数据提供的形式有多样,不外乎命令...阅读全文

网易云音乐一键下载NeteaseMusicDownloader

网易云音乐一键下载工具(MusicDownloader) ![image](https://static.oschina.net/uploads/space/2017/0302/103950_Hj0A_852973.gif) Golang 写的命令行工具,把需要下载的网址粘贴到命令行中即可。 目前支持直接下载: - 歌单 http://music.163.com/#/playlist?id=****** - 单曲 http://music.163.com/#/song?id=****** - 电台节目 http://music.163.com/#/program?id=******   - 歌手 http://music.163.com/#/artist?id=*****...阅读全文

开源项目 2017-03-02 04:00:09 henson

golang使用graphviz

graphviz的介绍请参考: http://www.cnblogs.com/ghj1976/p/4539788.html 安装 graphviz 需要在 http://www.graphviz.org/Download_macos.php 下载对应操作系统的版本。 安装完成后,可以用 dot –V 命令查看安装的版本,确认安装 mac 下安装后,会有一个 Graphviz 的应用可以查看 *.gv 的文件, 如下图效果所示: 产生Graphviz 文件 用 Golang 产生Graphviz 文件的封装方法如下: https://github.com/awalterschulze/gographviz 我们使用它的范例代码如下: package main import ( "fmt" "g...阅读全文

博文 2015-11-04 03:00:00 ghj1976

使用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 安装过程比较简单, 直接凶猛...阅读全文

golang学习之debug

先说一下,之前接触的Java,最近有需要接触到golang,所以一般会使用迁移思维,想着debug调试代码,网上搜了很多资料,大家推荐的都是golang的集成工具,类似gbd,delve这样的工具,但是就算golang本身没有debug,IDE肯定也是集成了debug的调试的 在Java编程的时候,使用IDEA的人,应该也会使用GoLang(吐槽一句,编辑器和语言名字一模一样,搜索问题的时候,很容易搜不到啊~),其实GoLang和IDEA是一模一样的,快捷键也基本一样, 见下图: 屏幕快照 2018-07-31 上午11.54.53.png 我想着的是这个地方配置debug,一般的项目不用配置,右键在main.go文件debug选择就可以了。如果项目需要运行的是整个包,不是单个文件;或者项目...阅读全文

博文 2018-07-31 19:34:47 卡萨布兰卡ginger