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

GoLang实现TCP协议客户端和服务端

TCP客户端: // TCP Client端设计 // 使用命令行启动 *.exe 127.0.0.1:5000 package main import ( "fmt" "net" "os" "time" ) func main() { var buf [512]byte if len(os.Args) != 2 { fmt.Fprintf(os.Stderr, "Usage: %s host:port", os.Args[0]) } service := os.Args[1] // 绑定 tcpAddr, err := net.ResolveTCPAddr("tcp", service) checkError(err) // 连接 conn, err := net.DialTCP("tcp...阅读全文

博文 2019-11-04 18:33:25 aside section._1OhGeD

命令行翻译工具fy

`fy`是一个命令行下的翻译工具。 ![](https://raw.githubusercontent.com/xwjdsh/fy/master/screenshot/fy.gif) ## 安装 ### Homebrew ``` brew tap xwjdsh/tap brew install xwjdsh/tap/fy ``` ### Go ``` go get -u github.com/xwjdsh/fy/cmd/fy ``` ### Docker ``` alias fy='docker run -t --rm wendellsun/fy' ``` ### Manual 从 [releases](https://github.com/xwjdsh...阅读全文

在中国linux安装go语言的方式

今天折腾了一天的VPS,装了HHVM、FTP,装不成功VPN。 GO语言也安装完成了,但中途也遇到一些问题,主要还是英文的问题,所以说学计算机的人啊,必须先学好英语。 本文首发于:http://www.zzzzy.com/201411023370.html 言归正传,golang.org作为一个技术的官网,居然被墙了。天朝不会凡谷歌的东西都要墙掉吧?呵呵。 首先肯定是下载资源包了,链接汇总在http://www.golangtc.com/download,我用的是 http://www.golangtc.com/static/go/go1.4beta1.linux-amd64.tar.gz 这个版本的镜像地址。 按照说明cd 进入 /usr/local 目录,然后执行 wget -c htt...阅读全文

博文 2015-02-26 13:00:01 pkufergus

Mac 必备神器之 Go2Shell 以及使用技巧

Go2Shell 一个可以快速在当前目录打开Shell的工具,小巧,非常好用! 但是它默认打开是 系统的iterm ,而我希望它打开 iTerm2 !~ 设置默认iterm 而Go2Shell默认没有设置界面,需要用命令行打开(隐藏得真深啊!)在Shell中输入: open -a Go2Shell --args config 会打开设置界面 设置界面 选择iTerm2 ,保存并退出即可!~ 配合其他利器使用 Go2Shell还可以配合其他软件进一步提升效率,让你爽翻!~ 配合Alfred 使用Alfred快捷打开,我这里输入2就可以快速打开 效果图 配合Finder 打开Finder,按住command键,拖动Go2Shell的图标到Finder菜单就可以在Finder快捷打开Go2Shel...阅读全文

Golang 生成Mac OS X dylib调用问题

突然想试试用go写个dylib供Objective-c调用,确发现总是报无法找到库的错误,无奈只好试试百度跟谷歌,总算是找到一个关于类似的问题的(ps:那些说改选项的就是个坑,都没说到关键点)。 不甘心后面又找到种方法了,见:http://log.zyxar.com/blog/2012/03/10/install-name-on-os-x/ install_name_tool -id "@loader_path/libmyhttp.dylib" libmyhttp.dylib 使用上面的方法后就不会要再运行那段脚本了,分发出去貌似都行了 其它方法: 具体问题要参见http://blog.csdn.net/ani_di/article/details/7078743 这里引用其中一段: “简单...阅读全文

博文 2017-11-17 23:03:30 不在乎y

Golang 安装和配置

1. Windows下的安装和基本配置 打开官网 https://golang.org/ ,点击红框中的 Download Go 图:Golang 主页 进入到下载页面,向下滚动到最新版本详细的下载列表。 图:下载页面 我先介绍Windows的安装:总共有红框中的四个文件。386 代表你的操作系统是32位使用这个,amd64 代表64位操作系统使用的(AMD首先生产了64位cpu,所以一般称为amd64)。(在 我的电脑 (windows10叫此电脑,英文版叫This PC),右键选择属性,里面就可以看见,如下图:) 操作系统位数查看 如图,我的操作系统是64位。 而 zip 和msi的区别,就是安装版和便携版(绿色版)的区别。zip解压就能使用,而msi需要点下一步,下一步,安装好,就可以...阅读全文

博文 2017-07-15 06:06:29 naturelover5

win10+go+beego搭建用户管理系统

win10+go+beego搭建用户管理系统 经过两天的从零开始研究学习,go程序的用户crud系统终于搭建成功,很不错吆。 go环境搭建 下载go1.9rc2.windows-amd64.msi,由于golang被墙,只能从其他网上下载。 采用默认安装到C:\Go,打开命令行,输入go version C:\Users\steve>go version go version go1.9rc2 windows/amd64 创建C:\GOPATH文件夹,添加环境变量 go开发工具安装配置 下载eclipse-inst-win64.exe(4.6.3)并安装 安装goclipse插件 因为GFC的封闭,我们需要先到https://github.com/GoClipse/goclipse.gith...阅读全文

博文 2017-08-30 19:31:03 steve_frank

golang编译程序在linux上的部署

1.交叉编译 Windows 下编译 Linux 64位可执行程序,这里需要解释一下 GOOS:目标平台的操作系统(darwin、freebsd、linux、windows) GOARCH:目标平台的体系架构(386、amd64、arm) 交叉编译不支持 CGO 所以要禁用它 具体命令如下: SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build main.go 首先进入cmd命令行,cd到go环境的安装目录下的src目录;然后依次执行以下命令(执行前先安装tdm64-gcc-4.8.1-3): set GOOS=linux set GOARCH=386 set CGO_ENABLED=0 make.bat 如果要生成64位lin...阅读全文

博文 2019-05-16 20:34:46 锐心凌志

golang学习之生成代码文档

go doc 工具会从 Go 程序和包文件中提取顶级声明的首行注释以及每个对象的相关注释,并生成相关文档。 一般用法: go doc package 获取包的文档注释,例如:go doc fmt 会显示使用 godoc 生成的 fmt 包的文档注释。 go doc package/subpackage 获取子包的文档注释,例如:go doc container/list。 go doc package function 获取某个函数在某个包中的文档注释,例如:go doc fmt Printf 会显示有关 fmt.Printf() 的使用说明。 在命令行输入 godoc -http=:6060,然后使用浏览器打开 http://localhost:6060 后,你就可以看到本地文档浏览服务器...阅读全文

博文 2016-06-13 14:00:00 caiya928

gohost -- go 开发的命令行hosts配置管理工具

前几天在微博上看到有人推荐了lazygit这个工具,让人眼前一亮,什么时候命令行也可以这么抢到了,????,调研了下,发现它使用了gocui,使用它可以做出来很多很炫的命令行工具。 现有的hosts工具里面也有switchosts!,但我是用的时候发现他还是有bug,也只能用在界面化平台。想了下,准备着手搞一个命令行的hsots配置工具,这个类库完全可以满足。 界面设计 在界面设计上,还是做个copycat,抄袭switchosts!的,分两栏,左侧是hosts分组,右边儿是当前聚焦hosts分组内容,控制开关放在左侧,如下所示。左侧开关控制每个组的开启关闭与否,系统当前的hosts是左侧所有打开hosts的集合。 *------*-------------------* |×name1|#...阅读全文

博文 2018-08-24 09:34:56 天生的黑

golang进阶(三)——后台进程的启动和停止

+++ title=”golang进阶(三)——后台进程的启动和停止” date=”2017-10-12” tags=[“golang”,”cobra”] categories=[“资源管理”] description=”不想再像java或者其他语言那样为了操作后台程序写各种脚本的话,这篇文章值得你一看” featured=true image=”img/201710/fengjing2.jpg” +++ 不想再像java或者其他语言那样为了操作后台程序写各种脚本的话,这篇文章值得你一看 启动命令 和上一篇文章一样,我们先来个非后台运行的启动命令 func init() { startCmd := &cobra.Command{ Use: "start", Short: "Start Gon...阅读全文

博文 2017-11-06 12:07:46 lastsweetop

Linux/Mac命令行中动态设置Golang的GOPATH工作路径

Gopher们经常会遇到在多个$GOPATH来回切换工作的场景,每次切换都有手动修改$GOPATH才能编译运行当前项目,很是不方便!!那么有没有自动修改$GOPATH的方法呢?答案当然是肯定的! 本人在 Linux/Mac的命令行通过配置 `~/.zshrc` 文件实现了在窗口启动及调用cd命令时自动重置$GOPATH的功能。 思路是: 首先判断当前目录是否在某个 `src` 目录下; 若在,则进一步判断当前路径对应的GOPATH是否已经设置到环境变量; 若没有设置,则自动修改$GOPATH到当前路径。 步骤一:打开 `~/.zshrc` 文件 vim ~/.zshrc 步骤二:将下面代码拷贝到 `~/.zshrc` 文件中,并保存 function setgopath() { currpa...阅读全文

博文 2017-04-25 12:00:32 henrylee2cn

Go 语言在命令行以表格的形式输出结构体切片

刚写的小工具,可以在命令行以表格的形式输出结构体切片 * 表格每列自动对齐 * 支持自动适应列宽 * 结构体的字段支持所有数据类型(字符串,切片,映射等) 例如可以很方便清晰地将数据库查询结果列表(结构体切片)在命令行以表格的形式输出。 项目 Github 主页: 对你有用的话,给个 star 支持一下吧~ ```go package main import ( "fmt" "github.com/modood/table" ) type House struct { Name string Sigil string Motto strin...阅读全文

Go 编程: 一分钟实现管道 pipe 功能

乘着打盹的时间看了一眼前两天写的日期转换的开源工具: ts。发现管道 pipeline 的功能点可以放大一下, 就此记录一下以备将来只需。 管道是什么 但凡在类 Unix 系统上敲过命令的人,大多使用过管道功能. 所谓管道,就是将A程序的标准输出作为B程序的标准输入。而在类 Unix 系统只需要使用 | 符号,连接 A 和 B 程序即可, 即 A | B。通过多次管道连接,就可以实现非常强大的功能。所以在类 Unix 系统上开发命令行程序有个著名的原则: KISS,即 Keep It Simple Stupid。 画了张简单的图: Go 程序 在 Go 程序中实现管道功能及其简单,直接上码: //先取程序的标准输入属性信息 info, err := os.Stdin.Stat() if er...阅读全文

打造完美的go开发环境

这篇原来是给公司里使用go开发的交流用的,主要是工具的安装,用markdown写的,发布了内部gitlab上,仓促发布到blog上面,也没改啥格式,现在整理一下,然后增加一点说明 基础开发工具 sublime text2下载 为何使用sublime text2?相信很多喜欢轻量级工具,开大量chrome网页以及使用大量小而精软件的开发者都喜欢editor吧,当然最主要是vim mode! 安装package control 打开后,按ctrl + ~打开命令行,或者在view->show console,复制如下代码,执行 import urllib2,os,hashlib; h = '7183a2d3e96f11eeadd761d777e62404' + 'e330c659d4bb41d3...阅读全文

博文 2014-10-04 19:26:25 qgymje

Golang(三)命令行工具集

Golang具有一套可以构建和处理go源代码的程序,作为命令行工具,这些程序也并非直接运行,而是由go程序调用。运行这些程序最常见的方式是作为go程序的子命令,例如 go fmt,该命令的运行方式是由go程序使用适合于包级处理的参数调用底层二进制文件,对go源代码的完整包进行操作;这些程序也可以作为独立的二进制文件运行,使用go tool子命令(如go tool cgo)使用未修改的参数;某些命令(如pprof)只能通过go tool子命令访问。go命令行作为日常开发的工具,能大大方便编译、调试、诊断程序性能等工作,本文是对常见go命令行工具使用的汇总 go命令 go命令管理go源代码并运行此处列出的其他命令。在终端输入go,会打印出如下信息 $ go Go is a tool for ma...阅读全文

博文 2019-10-06 18:32:51 aside section ._1OhGeD

安装goland编辑器

昨日在ubuntu系统中,安装了golang的环境,今天在安装一个比较好用的编辑器来写代码,会提高很大的效率。 首先从官网下载goland https://www.jetbrains.com/go/... 解压安装 tar -zxvf xxx.tar.gzsudo mv xxx /opt/goland 建立别名,快速启动 - sudo vim ~/.bashrc 添加 alias goland='nohup sh /opt/goland/bin/goland.sh >/dev/null >/dev/null 2>&1 &' 保存 source ~/.bashrc 在命令行直接输入goland就可以启动啦~ 破解软件 http://idea.lanyus.com/ 1、打开这个网址,复制里边的...阅读全文

博文 2019-08-19 22:02:44 码农苏羡的成长记

Go语言命令行操作命令详细介绍

Go 命令 Go语言自带有一套完整的命令操作工具,你可以通过在命令行中执行go来查看它们: 图1.3 Go命令显示详细的信息 这些命令对于我们平时编写的代码非常有用,接下来就让我们了解一些常用的命令。 go build 这个命令主要用于测试编译。在包的编译过程中,若有必要,会同时编译与之相关联的包。 1.如果是普通包,就像我们在1.2节中编写的mymath包那样,当你执行go build之后,它不会产生任何文件。如果你需要在$GOPATH/pkg下生成相应的文件,那就得执行go install了。 2.如果是main包,当你执行go build之后,它就会在当前目录下生成一个可执行文件。如果你需要在$GOPATH/bin下生成相应的文件,需要执行go install,或者使用go build...阅读全文

博文 2016-02-11 01:00:07 u011032846

cgo 调用练习, 简单愚蠢命令行词典

在go 的程序中调用 c 代码, golang 提供了两种方法: cgo, swing 。gstreamer 是开源跨平台的多媒体框架库,主要是在gnome 基础核心库 glib 之上构建。下面有一个简单的使用cgo 包装 gstreamer playbin 插件的例子: gstuse.go package main /* #cgo pkg-config: gstreamer-1.0 #define _GNU_SOURCE #include #include #include void play(const char *uri){ GstElement *pipeline; GstBus *bus; GstMessage *m...阅读全文

博文 2015-02-02 16:00:01 yujian0231

Go开发的命令行有道词典:ydict

ydict 是一个基于命令行的有道词典工具,由于没有UI界面,无需点击鼠标,再输入单词,通过命令行就可以实现高效的单词和句子查询,非常适合热爱命令行的geek同学。ydict用到了goquery这个库,从有道词典扒数据,并展示。 主要支持的功能: * 中文翻译为英文 * 英文翻译为中文 * 查询不到单词时,自动显示推荐搜索提示 * 语音朗读功能,朗读你所查询的单词 ![](https://raw.githubusercontent.com/TimothyYe/ydict/master/snapshots/ydict.gif) 项目已经开源,放在GitHub给有兴趣的同学参考: https://github.com/TimothyYe/ydict 安装...阅读全文

golang 信号

//有时候,我们希望 Go 能智能的处理 Unix 信号。例如,我们希望当服务器接收到一个 SIGTERM 信号时能够自动关机,或者一个命令行工具在接收到一个 SIGINT 信号时停止处理输入信息。这里讲的就就是在 Go 中如何通过通道来处理信号。 package main import "fmt" import "os" import "os/signal" import "syscall" func main() { //Go 通过向一个通道发送 os.Signal 值来进行信号通知。我们将创建一个通道来接收这些通知(同时还创建一个用于在程序可以结束时进行通知的通道)。 sigs := make(chan os.Signal, 1) done := make(chan bool, 1) ...阅读全文

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

[翻译]飞翔的 gob

这个题目的原文叫做《Gobs on the wire》,作者巧妙的用了“gob”这个词。gob本来是Golang的一个关于网络通信协议的包。而在这里,我感觉标题也可以翻译为《关于线上的那一大陀……》。好吧,我得承认,这么翻译实在不雅。 ————翻译分割线———— 飞翔的 gob 这周,我想跟大家谈谈如何用 Go 编写基于同步请求和异步事件通知的 Client/Server 系统。 为了帮助学习 Go,我克隆了一个Conserver 命令行服务。当然,现在对于世界来说没必要有另外一个命令行服务。然而由于Go语言带给开发者的特性,非常适合用来做命令行服务,所以这将会是一次非常有趣的体验。命令行服务的任务是从一个或者多个串口上汇总输出(或者说各种系统上的一个或者多个实现了使用TCP连接的Rteln...阅读全文

博文 2014-10-09 16:15:25 mikespook

关于google app engine的安装使用

关于google app engine的安装使用 我下载了google app engine的zip压缩包,解压到c盘根目录,将“c:\go_appengine”添加到path里面,使用命令时出现问题。 1、在cmd命令行窗口可以使用goapp命令,但在gitbash下显示sh.exe:goapp:command not find。这是什么原因,到底要将哪个路径写进path里面。 2、我使用deploy命令上传时出现“could not find python interpreter: exec: "python": executable file not found in%PATH%”,大概意思是找不到Python编译器,这是什么原因,源文件到底放在哪个路径下面,我已经安装...阅读全文

Golang 解决已安装guru,依然提示"could not find 'guru'. Run :GoInstallBinaries to fix it"的问题

【问题】已安装guru及其依赖,当“vim xxx.go”时,按下“ctrl +[”提示“could not find 'guru'. Run :GoInstallBinaries to fix it” 【解决】可按如下步骤操作: $ go get golang.org/x/tools/cmd/guru $ go build golang.org/x/tools/cmd/guru $ mv guru $(go env GOROOT)/bi...阅读全文

博文 2017-04-17 06:00:36 吃一堑消化不良

go常用包简介

以下记录了已了解的golang常用包 1. 程序配置 flag 解析命令行模式下的参数,定义的说明文字会在程序启动的时候打印出现 golang.org/pkg/flag/ globalconf 和flag包同时使用,可以从配置文件中读入flag包定义的变量 github.com/rakyll/globalconf 2. 日志 log 系统自带 go-logger log包基础上的扩展 github.com/donnie4w/go-logger 3...阅读全文

博文 2016-01-06 03:00:00 manmanfei

整理下Base64相关的东西(OpenSSL/GO...)

Base64在不同语言对接时,其实是有些小坑的,之前有碰过。 首先Base64的是啥? 阮一峰有一篇写得很赞的文章说得很明白。 然后是怎么编码? 我用OpenSSL写了个Base64解编码实现: /* 用openssl来做Base64加解密. Author: xcl Date:2015-9-17 */ #include #include #include #include "openssl/ssl.h" #include #include #if defined(WIN32) || defined(_WIN64) #pragma comment(lib, "libeay...阅读全文

博文 2015-10-24 13:00:05 xcltapestry

七牛云音视频新功能:音频支持 AAC_HE

![1.png](http://studygolang.qiniudn.com/160229/ae427c76a903c127fb114c705f44f355.png) 与大家所熟知的 MP3 一样, AAC 也是一种常见的音频格式。现如今常见的 AAC 规格有三种: LC-AAC (最基本的), HE-AAC ( AACPlus v1 ), HE-AAC v2 。 HE :“ High Efficiency ”(高效性)。 HE-AAC (又称 AACPlus v1 , SBR ),用容器的方法实现了 AAC ( LC )和 SBR(频段复制)技术。 SBR 把频谱切割开来,低频单独编码保存主要成分,高频单独放大编码保存音质,在减少文件大小的情况下还保存了音质。 HEv2...阅读全文

使用SublimeGDB调试Go程序

大家好,好久没有跟新博客了,今天给大家带来一篇Sublime Text 2的插件SublimeGDB的使用教程。 在很早之前,写过一篇关于Sublime Text 2配置Go语言开发环境的文章,如果您还没有看过,可以先看看这一篇文章,地址:http://golanger.cn/?p=32,还写过一篇关于Go使用GDB断点调试的文章,大家也可以看下,地址:http://golanger.cn/?p=91。 接下来我们看下SublimeGDB的安装以及使用: 一,安装SublimeGDB插件:打开Preferences菜单下,Package Control菜单,并选择 Install Package选项,如下图: 输入SublimeGDB,并选择安装,一段时间后,SublimeGDB就会安装成功...阅读全文

博文 2014-10-09 16:51:16 Rhino(犀牛)

go语言nsq源码解读-基本介绍

希望可以在空余时间完成nsq源码解读系列的文档。 本篇作为第一篇,简单介绍一下nsq. 参考 http://feilong.me/2013/05/nsq-realtime-message-processing-system 的介绍:NSQ是由知名短链接服务商bitly用Go语言开发的实时消息处理系统,具有高性能、高可靠、无视单点故障等优点,是一个非常不错的新兴的消息队列解决方案。 nsg易于配置和部署,所有参考都通过命令行指定,编译好的二进制文件,没有其它依赖项。而且支持多种消息格式。 源码下载地址: https://github.com/bitly/nsq 本系列文档下载的源码为0.2.27版本。 为更好的理解源码,最理想的起步当然是先了解nsq的用法。所以接下来会先讲解nsq的安装、使用...阅读全文

博文 2015-06-13 12:12:36 baiyuxiong

Go 1.5 Beta 3 发布,正式版将于 8 月中旬发布

Go 1.5 Beta 3 发布,Go 1.5 主要改进如下: * 编译器和运行现在完全用 Go 写(带一点汇编)。C 不再参与实施,所以曾经是构建分布必不可缺的 C,如今已经不见了。 * 垃圾收集器现在是 [并发的](https://golang.org/s/go14gc) ,并且通过运行提供显著降低了的暂停时间,可能时候,能和其他的 goroutines 平行。 * 默认 Go 程序使用 GOMAXPROCS 变量来设置CPU核数,之前默认是1 * 对 [internal packages](http://golang.org/s/go14internal) 的支持延伸到所有仓库,不只是 Go 核心库 * go 命令提供体验支持 vendoring 外部依赖 * 全新的 ...阅读全文

go 设置 GOROOT 和 GOPATH

发表失败全部丢失,写完了又重写一遍,csdn 都没个自动保存功能,强烈吐槽 go 里面有两个非常重要的环境变量 GOROOT 和 GOPATH,其中 GOROOT 是安装 go 的路径,而 GOPATH 是我们定义的自己的工作空间。 如果在安装的时候是一路 next 完的,那么默认就配置好了 ,无需手动配置。 如果在安装的时候修改了默认的安装路径,那么可能需要自己添加一下 。 首先在环境变量中添加 GOPATH,值为 go 的安装目录: 然后在环境变量 PATH 中添加 go 安装目录下的 bin 文件夹。 接着添加一个环境变量 GOPATH,值为你自己希望的工作目录。 最后重启一下 命令行工具,输入 go env 命令即可查看: Tips: 一定要记得重启下命令行工具,cmd 或者 cmd...阅读全文

博文 2017-11-09 18:01:01 xs20691718

golang测试指定方法

本次是针对命令行来写的,如果使用goland工具则不存在此问题,其它IDE不清楚。 测试命令 go test -v 依赖文件 -test.run 方法名 备注:依赖文件指的是,你在测试用例文件需要引用到的其它文件,可空格分隔填写多个 -v,输出方法测试的开始与结束信息 如果依赖文件存在当前目录的比较多 go test -v ./ -test.run 方法...阅读全文

博文 2018-12-05 16:34:56 __simple

Go Modules 的使用方法 —— Go 官方博文

## 简介 Go 1.11 和 1.12 引入了[对 modules(模块)的初步支持](https://golang.org/doc/go1.11#modules),这是一个能让依赖项的版本信息更加明确和易于管理的依赖管理系统。本文旨在为你使用模块提供基本的操作指导。后续会有一篇文章来说明如何发布一个模块以供别人使用。 一个模块是一系列 [Go 代码包](https://golang.org/ref/spec#Packages) 的集合,它们保存在同一个文件树中。文件树的根目录中包含了一个 `go.mod` 文件。`go.mod` 文件定义了一个模块的 module path,这就是模块根目录的导入路径。`go.mod` 文件还定义了模块的 *dependency requirements...阅读全文

博文 2019-03-28 20:37:18 Alex-liutao

golang开发常用开源项目工具(持续更新中)

本人在日常golang项目开发中,用到了一些第三方开源库,大多都是优秀的开源项目,源码值得认真阅读研究。在此记录用到的一些库:1. 解析配置文件https://github.com/go-ini/ini,go-ini, go INI文件解析, 2. 命令行工具https://github.com/cheggaaa/pb, Terminal progress bar for Go, golang进度条3. golang web 开发https://github.com/gorilla, Gorilla web toolkit 一系列web开发套件,最常用的为http路由模块mux4. 存储相关https://github.com/klauspost/reedsolomon, RS纠删码 htt...阅读全文

博文 2018-07-02 21:35:45 暮色伊人

Go 1.5.2 发布

Go 1.5.2 发布,更新内容请看:[1095 commits](https://github.com/golang/go/compare/go1.5.2...master) 。 下载页面:[go1.5.2](https://github.com/golang/go/tree/go1.5.2) Go 1.5 主要改进: * 编译器和运行现在完全用 Go 写(带一点汇编)。C 不再参与实施,所以曾经是构建分布必不可缺的 C,如今已经不见了。 * 垃圾收集器现在是 并发的 ,并且通过运行提供显著降低了的暂停时间,可能时候,能和其他的 goroutines 平行。 * 默认 Go 程序使用 GOMAXPROCS 变量来设置CPU核数,之前默认是1 * 对 intern...阅读全文

golang go run undefined 同一个package中函数互相调用的问题

golang中同一个package中函数互相调用的问题 同一个packge中(test) a.go package main func main(){ Test() } b.go package main import "fmt" func Test(){ fmt.Println("Hello gopher!") } 编译的结果如下: D:\goWork\src\test>go run a.go # command-line-arguments .\a.go:4:2: undefined: Test 正常来说同一个package下,函数是可以相互调用的,不应该报错, 出现这种问题的原因是没有对这个package整体进行编译, 也就是说只编译了部分: 找到了问题,针对进行解决就可以了, 只要找...阅读全文

博文 2019-01-14 23:34:40 陈卧虫

[翻译]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

Go Modules 详解

文链接:Go Modules 详解 Go 1.11 和 Go 1.12 包含了初步的 Go Modules 支持,且计划在 2019 年 8 月发布的 Go 1.13 会在所有开发过程中默认使用 Go Modules。 Go Modules 是为了提升使用其他开发者代码,即添加**依赖项(模块、包)**时的体验,也是为了让代码的正确性、安全性得到保障。并且 Go Modules 可以使用 GOPROXY 环境变量来解决中国大陆无法使用 go get 的问题。 所以学习跟 Go Modules 有关的知识是很有必要的。 Golang Logo 模式 Go Modules 在 Go 1.11 及 Go 1.12 中有三个模式,根据环境变量 GO111MODULE 定义: 默认模式(未设置该环境变...阅读全文

博文 2019-06-20 22:34:37 sulinehk

go module 详解

基础知识 环境准备 使用golang 1.11以上版本的朋友,开启 GO11MODULE=on ,并且确保实验目录不在 GOPATH 中,命令行里执行。export GO11MODULE=onexport GO111MODULE=on2.golang 1.12和golang 1.13的朋友,确保实验目录不在 GOPATH 中。 3.加速下载,命令行里执行。export GOPROXY=https://goproxy.io 初始化go module环境 带git的项目 直接从github上面clone一个项目下来。 直接执行 go mod init 会自动生成带git地址的packagename 执行命令:go mod init不带git的项目直接执行go mod init packagena...阅读全文

博文 2019-11-08 01:03:08 chymingyan

Golang学习笔记--flag包

文链接: http://www.cloudnoter.com/?p=131 flag包是用来处理命令参数的。总得来说,其通过将命令行标志与某一具体变量进行绑定,开发人员通过使用该变量进行业务逻辑处理。 一、FlagSet是该包的核心类型: type FlagSet struct { // Usage is the function called when an error occurs while parsing flags. // The field is a function (not a method) that may be changed to point to // a custom error handler. Usage func() name string parsed b...阅读全文

博文 2015-06-17 20:23:35 cza55007

golang aws-sdk-go 之 s3 服务

s3 是 aws 提供的分布式文件服务,价格比较优惠,经常被用来作为日志的持久化存储,大数据处理结果的输入输出等 s3 服务提供命令行工具,可以很方便地上传、下载、删除文件,普通 golang 程序如果需要访问 s3 上文件,一种简单方式可以先将 s3 上文件下载到本地,然后直接访问本地文件即可,但是这种方式需要一个额外的步骤,下载到本地,有额外的运维成本,需要额外的磁盘空间,使用上面不是很灵活,此外,微服务应该尽可能地降低对本地数据的依赖,这种设计也不符合微服务的设计思想 使用 aws-sdk-go 可以直接访问 s3 服务,实现文件的上传和读取 以下使用的代码:https://github.com/hatlonely/... 创建会话 首先需要创建一个会话,后续的访问都可以通过这个会话进...阅读全文

博文 2018-03-04 20:34:39 hatlonely

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-09-04 04:34:51 PolluxLee

golang中自动加分号的情况

分号 正式的语法使用分号“;”作为多个语句的分隔符。Go程序可以使用以下两种规则在大多数情况下省略这些分号: 当输入被断开为标记时,如果行末标记为 一个标识符一个整数、浮点数、虚数、字符或字符串文字关键字break、continue、fallthrough或return中的一个运算符和分隔符++、--、)、]或}中的一个 则分号将被自动插入到标记流中非空白行的末尾。 如果让复合语句占用单独一行,则在“)”或“"}"”后面的分号可以被省略。 为了反映习惯用法,本文档中的示例代码将依据此规则省略分号。 其实偶也没看懂...阅读全文

博文 2015-06-17 20:23:38 icyday

第一个 Go 程序

这里简单记录学习Golang之旅,方便自己回顾。 package main import "fmt"// 我们需要使用fmt包中的Println()函数 func main() { fmt.Println("Hello, world!") } 每个Go源代码文件的开头都是一个package声明,表示该Go代码所属的包。包是Go语言里最基本的分发单位,也是工程管理中依赖关系的体现。要生成Go可执行程序,必须建立一个名字为main的包,并且在该包中包含一个叫main()的函数(该函数是Go可执行程序的执行起点)。 Go语言的main()函数不能带参数,也不能定义返回值。命令行传入的参数在os.Args变量中保存。如果需要支持命令行开关,可使用flag包。 在包声明之后,是一系列的import语句...阅读全文

博文 2015-01-30 19:00:07 q454684431