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

golang进阶之路

类型转换 go语言提供了一种在不同但是相互兼容的类型之间相互转换的方式,并且这种转换非常安全。非数值类型之间的转换不会丢失精读。 但是对于数值类型之间的转换,可能会发生丢失精度或其他问题。 转换语法 resultOfType := Type(exportession) 例如 x := uint16(6500) y := int16(x) 由于x超出了int16的范围,所以y的值会被设置成-535。 对于数字,本质上将我们可以将任意的整型或者浮点型数据转换成别的整型或浮点型(要考虑丢失精度问题)。 string类型转换 一个字符串可以转换成一个[]byte(其底层位UTF-8的字节)或者一个[]rune(Unicode码点),并且[]byte和[]reune都可以转换成一个字符串类型。单个字符...阅读全文

博文 2019-04-24 01:34:42 b77bb494e846

理解 Deno

deno: A new way to Javascript 为什么要花时间学习它呢? 前端开发 Javascript 是世界上最大的生态圈。 TypeScript 作为 Javascript 的超集,兼顾了 Javascript 灵活性和工程化能力。 V8 使用 EventLoop 并发模型,天生适合事件驱动型场景。 在后端业务开发逐渐标准化的趋势下,业务开发工具最需要的是可控的效率。 deno 的作者在创建完 node.js 后,总结大量工业经验,系统架构设计得很简洁,简洁的东西稳定性高,根基正,可成大树。 然后,从各种资料里屡清楚这个项目的脉络 作者 Ryan Dahl 的演讲《10 Things I Regret About Node.js》 和 《Deno, A New Server...阅读全文

博文 2019-02-15 02:34:43 王谙然

Go语言的初步认识

Go语言是来自Google的一门语言,Go语言的一些开源项目如下 链接:http://www.open-open.com/lib/view/open1396063913278.html 关于Go语言的一些内容如下 链接:http://www.tuicool.com/articles/7fMzYnB 链接:http://www.csdn.net/article/2012-07-05/2807113-less-is-exponentially-more Go语言的帮助文档可以进行安装后使用命令找出,例如查看go语言hash的命令如下 如果需要查看源码,就加一个参数。如下 第一个Go语言的程序如下 Go语言的源代码可以直接运行,如下命令 也可以先进行编译成可执行文件,然后运行,编译命令如下 好了,...阅读全文

博文 2015-02-25 18:00:02 ACHelloWorld

idea开发go

idea开发go 以我的idea版本,2016.1.3为例: 1 从idea插件官网下载开发go所需要的插件:官网地址: https://plugins.jetbrains.com/ go插件地址: https://plugins.jetbrains.com/plugin/5047?pr=idea 注意版本对应参照地址: https://github.com/go-lang-plugin-org/go-lang-idea-plugin 注意哪个版本的idea需要下载哪个版本的插件 2 下载完成之后,需要进行配置, 找File--Settings,这里有好几个插件项 All plugins 显示所有插件。 Enabled 显示当前所有已经启用的插件。 Disabled 显示当期那所有已经禁用的...阅读全文

博文 2016-08-04 20:00:04 君子兰1002

win10系统下minGW的安装

因为在运行golang的go-sqlite3库时,因为缺少C的编译环境,编译器出现了下列报错: exec: "gcc": executable file not found in %PATH% 解决方法是安装minGW 由于minGW官网的安装路径实在是太曲折了,安装文件的链接不好找,下载下来的安装包需要从十几个目录的几十个库中选择需要的部分,我找的教程在这一步有些问题,最终的安装结果没有成功。 总结了网上的教程之后,总结了一条最简单的路径: 下载minGW的完整压缩包,来源是这个海外的资源站https://sourceforge.net/projects/mingw-w64/ 下载完毕后将压缩包解压在任意目录,因为外层文件夹的名字较长:x86_64-8.1.0-release-posix-...阅读全文

博文 2020-03-05 03:32:46 敏讷_

Node之父重构的Deno终于发布了,它终究会取代Node吗?

Node之父是谁? image image 没错!就是这个叫Ryan Dahl的男人在2009年创造了Node。你看,其实也不是说大神就都没头发,这位大神毛发不是挺旺盛的嘛! 不过既然是在2009年缔造的Node,那么就不得不吐槽那时候的JS了。在2009年的JavaScript啥样大家都知道(好像貌似那时候的程序员毕竟少),ES5.0(不成熟的ES5)在09年年底才刚刚发布,而ES5.1(咱们现在用的ES5)在2011年6月才开始发布并成为ISO国际标准。 想象一下即使现在有了ES6 ~ ES2020这么新的版本,JS依然经常被大家拿来吐槽,更别提那个ES5都没普及的年代了。 在那时候既没有合适的异步方式也没有模块化,也没有什么包管理啥的。那么这样的JS写大型项目或服务端项目简直就是一场灾...阅读全文

博文 2020-05-15 14:35:39 手撕红黑树

递归

# 递归的定义:一个函数调用自己,就叫做递归。 例如很经典的Fibonacci数列: ``` func Fibonacci(n int) int { if n <= 1 { return 1 } return Fibonacci(n-1) + Fibonacci(n-2) } ``` # 递归的设计原则 1. 一个大的问题能够分解成相似的小问题 2. 定义好出口条...阅读全文

博文 2018-10-11 09:56:59 ace_kylin

golang 在plugin 中import 静态库(//go:binary-only-package)无法编译的问题

当前 go 版本 1.9.2 把程序编译成plugin,plugin 里面引用了静态库,这时候编译会报错找不到静态库。 missing or invalid package binary for binary-only package say 但是如果把程序编译成 可执行文件,则可以成功,能找到静态库 1、say.go 文件在/work/golang/src/say 目录下 package say import "fmt" func Say(s string) string { return fmt.Sprintf("hello %s", s) } 2、编译成静态库 go build -i -o $GOPATH/pkg/linux_amd64/say.a 3...阅读全文

java、golang日志文件转储压缩实现

日志的转储和压缩是非常关键的,它不仅可以减少硬盘空间占用,主要还可以在发生故障时根据日志定位出故障原因。下面来看看golang和java的文件转储实现。 go语言: 用到了filepath包下的Walk方法,具体说明可以参看历史文章: go语言path/filepath包之Walk源码解析 package main import ( "fmt" "os" "io" "archive/zip" "path/filepath" "time" "log" ) func main() { logFile := "D:/tmp/successLog/logs/root.log" backFile := "D:/tmp/successLog/logs/root_" + time.Now().Format...阅读全文

博文 2018-08-25 11:34:58 我的小碗汤

go语言与c语言的相互调用

最近由于工作原因,需要实现go语言与c语言的相互调用。由于go语言与c语言有着千丝万缕的暧昧关系,两者之间的调用可以通过语言层面实现。下文是对此的总结。 go语言调用c语言 以下为一个简短的例子: package main // #include // #include /* void print(char *str) { printf("%s\n", str); } */ import "C" import "unsafe" func main() { s := "Hello Cgo" cs := C.CString(s) C.print(cs) C.free(unsafe.pointer(cs)) } 与“正常”的go代码相比,上述代码有几处“特...阅读全文

博文 2018-02-25 23:40:15 p了个c

Docker部署Golang程序方法

之前我写过如何部署Golang程序到服务器,这次咱们来写写怎么利用Docker来部署我的Golang,当然如果要部署到Docker里面,Docker是必须安装的,可以点击这里查看安装步骤。 文/谦益 这篇文章可能不太适合对go和Docker零基础人士阅读,需要有一定的基础知识。 依赖知识 Go交叉编译基础 Docker基础 Dockerfile自定义镜像基础 docker-compose编排文件编写基础 当然,一点也不会也可以按照这个步骤部署完成,不过可能中间如果出点小问题,会不知道怎么解决,当然你也可以留言。 我是在mac环境上开发测试的,如果你是在windows上可能有一点出入,但应该不会有啥大问题。 一、依赖环境 Docker 二、编写一个GoLang web程序 我这里就写一个最简单...阅读全文

博文 2018-10-02 13:34:42 谦益_

flutter学习一:dart语言简介

Dart是什么? Dart是一门新的编程语言,如同JAVA、PHP一样,是为了解决编写应用程序中的一些实际问题而被造轮子发明出来的,而这个造轮子的人就是 Google。可能大家都熟悉Google 的另一个轮子Golang,而对Dart 听闻甚少,其实Dart 的出生跟Go很相近,只是由于它的星途比起Go来说有点坎坷,一直没有被广大开发者重视,相关的技术文章和应用比较匮乏,也就一直蒙尘在泛泛语言之中。最初设计Dart,是Google的一帮程序员出于对JavaScript的不满,决定自己搞一个新语言用来替换JavaScript的,所以刚开始Dart也就是用来作为浏览器脚本运行在浏览器中的。为了推广Dart,Google利用自己的利器Chrome让它内置了DartVM的引擎。有了运行环境,加上用户...阅读全文

博文 2019-03-26 13:34:40 浩之然

Go Install

1.下载压缩包 下载此压缩包并提取到/usr/local目录,在/usr/local/go中创建Go目录树。例如: sudo tar -zxvf go1.5.linux-amd64.tar.gz -C /usr/local 2.配置环境变量 export GOROOT=/usr/local/go # vegeta need # export GOBIN=$GOROOT/bin export PATH=$PATH:$GOROOT/bin export GOPATH=$HOME/gocode 记得source /etc/profile重新加载这个配置文件. 3.创建软链 sudo ln -s /usr/local/go/bin/go /usr/bin/go 此时,你可以使用go version或...阅读全文

博文 2016-03-13 14:00:02 xiaojia1100

HTTPS以及golang使用方式

HTTPS相关知识以及在golang中的应用 最近简单学习了HTTPS,并在golang中实践了一下,现在把学到的知识记录下来。 一些简单的概念,可以自行百度百科 HTTPS简介:HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。 HTTPS与HTTP的区别:HTTP是以明文的方式来传递数据的,HTTPS是在HTTP的基础上加入了SSL协议的加密传输方式。 CA(Certificate Authority):ca就是我们所说的证书颁发机构,ca是可信的权威机构,其实就是个办证的,给他钱,他给我们办证,当然了办的都是真证。ca机构也是有证书的,我们的电脑中自带了...阅读全文

博文 2019-08-07 09:32:38 黄淑宁

Ubuntu中Go的环境搭建

Go1.8的下载地址:wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gzlinux下安装go在centOS下,安装go的环境,如下:下载压缩包,wget https://storage.googleapis.com/golang/go1.8.linux-amd64.tar.gz解压该文件,由于默认的go路径,在/usr/local下, 所以用如下命令,解压创建/usr/local/gotar -C /usr/local -xzf go1.8.1.linux-amd64.tar.gz 配置环境变量,vim /etc/profile下,添加对应的goroot和gopath的配置环境export GOROOT=/u...阅读全文

博文 2018-09-25 00:35:11 ck_god

Win7配置Go环境

最近想学习下Go语言,先从最基本的Hello Go开始,搭建Go开发环境 一、下载Go包 由于Go官网国内访问经常有问题,可以从国内的镜像下载: http://www.golangtc.com/ 二、配置环境变量 1、将Go的压缩包解压到任意目录,我的为D:\SDE\go 2、 配置GoRoot路径 3、配置Path路径 4、配置Go程序工作目录GOPATH 配置完成以上环境变量后,我们可以在命令行窗口中查看配置是否成功,这里我使用cygwin 输入go version命令 出现Go的版本号则说明配置成功! 三、在GOPATH配置的工作目录中新建main.go文件,编写如下代码 1 package main 2 3 import ( 4 "fmt" 5 ) 6 7 func main() {...阅读全文

博文 2016-06-03 10:00:00 kungfupanda

golang之递归

翠花,上代码 package main import ( "fmt" "time" ) /* 递归原则,一个大问题分解成相似的小问题 定义好出口条件,否则死循环 */ func calc(n int) int { if n == 1 { return 1 } return calc(n-1) * n } func recusive(n int) { fmt.Println("你好呀") time.Sleep(time.Second) if n > 10 { return } recusive(n + 1) } func factor(n int) int { if n == 1 { return 1 } return factor(n-1) * n } //斐波那 func fab(n in...阅读全文

博文 2017-12-31 05:30:00 pyyu

Go1.5 zip 压缩目录修正时间

package zip import ( "archive/zip" "io" "os" "path/filepath" "time" ) const zone int64 = +8 func Zip(source, target string) error { zipfile, err := os.Create(target) if err != nil { return err } defer zipfile.Close() archive := zip.NewWriter(zipfile) defer archive.Close() return filepath.Walk(source, func(path string, info os.FileInfo, err error) e...阅读全文

博文 2016-03-07 18:00:01 fyxichen

脑洞大开:用Go来保护我们的Jar程序

反编译带来的困扰 对于一个开发给自己组织内部用的程序,这么做其实是非常多此一举的,但是对于商业软件来说,这又显得有必要,软件行业现在的竞争非常的激烈,大家可以把竞争对手的程序搞过来反编译一下,轻易的知道对手基于什么软件来做,或者能够比较容易知道实现原理,然后。。抄抄抄,换个名字,完事,一个全新的产品就出来了。对于Java来说这个问题就更加明显了。虽然有类似ZKM这样的商业软件来进行混码,但是混码后只要你有耐心,还是有很大机会能读懂的 在这里不得不吐槽一下,ZKM实在太难用了 怎么保护我们的Jar文件 这里我们只讨论胖胖的Jar包(就是那种全部都打在一起直接java -jar就能跑的包,例如Spring Boot打出来的)。 对于防止反编译来说,Golang这类打包出来就是二进制的方式其实就非...阅读全文

博文 2017-08-15 08:05:08 小埋酱

Golang实现异步上传文件,支持进度条查询

业务背景 业务需求要求开发一个异步上传文件的接口,并支持上传进度的查询。 需求分析 ZIP压缩包中,包含一个csv文件和一个图片文件夹,要求:解析csv数据存入mongo,将图片文件夹中的图片信息对应上csv中的人员信息。 ZIP压缩包解压 使用golang自带的"archive/zip"包解压。 func decompressZip(filePath, dest string) (string, string, error) { var csvName string imageFolder := path.Base(filePath) ext := path.Ext(filePath) folderName := strings.TrimSuffix(imageFolder, ext) s...阅读全文

博文 2019-10-23 10:32:56 aside section._1OhGeD

把别人的Tcl/Tk代码加入到Go语言里11 游戏4 红心游戏

a 首先打开网页下载tcl/tk游戏源码http://sourceforge.net/projects/tkgames/files/latest/download?source=typ_redirect b 把压缩包里的tcl/tk源代码文件tkHearts-0.90用文本编辑器打开,并把所有内容 复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里...阅读全文

博文 2015-05-13 13:00:01 名字不能长

golang web开发获取get、post、cookie参数

在成熟的语言java、python、php要获取这些参数应该来讲都非常简单,过较新的语言golang用获取这些个参数还是费了不少劲,特此记录一下。 golang版本:1.3.1在贴代码之前如果能先理解一下golang http.request的三个属性Form、PostForm、MultipartForm应该能较好的理解代码,下面摘录一下。 Form、PostForm、MultipartForm说明Form、PostForm、MultipartForm说明 简要说明一下 Form:存储了post、put和get参数,在使用之前需要调用ParseForm方法。PostForm:存储了post、put参数,在使用之前需要调用ParseForm方法。MultipartForm:存储了包含了文件上传...阅读全文

博文 2018-01-19 00:30:00 xiaoleiel

看清区块链

链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 虽然说比特币系统于2009年推出,但区块链技术自2015年才兴起,到今天也就两年多一点的时间。 比特币系统是把多种技术组合创新,实现了一个防止篡改、防止欺诈的多方记账机制,构建起一个平等、协作、信任的价值传输网络。而区块链技术从比特币系统中被挖掘出来,经过二次创新和发展,瞄准的是解决现实场景中的问题。 当前区块链构想的运行环境与现实世界之间还存在一个鸿沟。现实中很难找到像比特币一样封闭的体系,产生在网络中、流转在网络中、消失在网络中。它既不接收外部世界的输入,也不对外部世界产生输出。每10分钟产生一个区块,生成一定数量的新比特币,流转不定数量的旧比特币,就像一个数字货币游戏一样。现实中不管是跨境汇款,还是票据流转...阅读全文

博文 2019-09-12 17:32:45 链客

GO环境搭建

yum install mercurial 安装 mercurial包 4 安装git包 yum install git 5 安装gcc yum install gcc 6 然后就可以下载golang的压缩包了 wget https://go.googlecode.com/files/go1.2.linux-amd64.tar.gz 7 下载完成 8 用tar 命令来解压压缩包 tar -zxvf go1.2.linux-amd64.tar.gz 9 接着我们要添加环境变量 vi /etc/profile 10 在profile里面添加如下内容 export GOROOT=/home/forward/tools/go export PATH=$GOROOT/bin:$PATH export ...阅读全文

博文 2016-04-22 00:00:03 semin

时间序列数据的处理

摘要: 随着云计算和IoT的发展,时间序列数据的数据量急剧膨胀,高效的分析时间序列数据,使之产生业务价值成为一个热门话题。阿里巴巴数据库事业部的HiTSDB团队为您分享时间序列数据的计算分析的一般方法以及优化手段。 演讲嘉宾简介:钟宇(悠你) 阿里巴巴 数据库高级专家,时间序列数据库HiTSDB的研发负责人。在数据库、操作系统、函数式编程等方面有丰富的经验。 本次直播视频PPT,戳这里!http://click.aliyun.com/m/51142/ 本次分享主要分为以下几个方面: 1. 时序数据库的应用场景 2. 面向分析的时序数据存储 3. 时序数据库的时序计算 4. 时序数据库的计算引擎 5. ...阅读全文

kali linux 安装go lanage

golang社区下载linux版的golang tar.gz文件 将下载的tar.gz压缩包解压至/usr/local目录 tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz 在用户根目录创建go项目文件夹 mkdir ~/go 编辑~/.bashrc文件在末尾添加 export PATH=$PATH:/usr/local/go/bin export GOPATH="$HOME/go" 更新环境变量 source ~/.bashrc 在命令行执行go命令,如输出则配置成功,如没有输出,检查~/.bashrc中新增的环境变量是否使用了中文符...阅读全文

博文 2019-01-31 22:34:43 DeepCode

Web3极客日报 #3

如何构建一个最小化的区块链 原文链接(英文) 中文翻译 @Caos: 文章作者描述了一款最小可用的区块链需要具备什么样的核心模块,其核心思想是通过分层或隔离的方式来提高最小区块链的可维护性,希望这篇文章能够给我们一些启发。 Cosmos SDK中支持启用WASM虚拟机 https://mp.weixin.qq.com/s/iVXDO010WD4zP_olunuXFQ @Caos: Rust 即将统治世界,如果你是Rust开发人员,则可以轻松编写智能合约,这些合约可以上传到任何包含CosmWasm模块的基于Cosmos SDK的链。 你只需要极少的Golang知识。 你可以开始在Cosmos SDK上构建并轻松集成到现有Cosmos网络中。 可以以最小的开销将你现有的链或应用程序扩展到Cosm...阅读全文

博文 2019-12-27 16:33:06 空乱木

hello world _ golang

环境 : sublime text, ubuntu (至于环境变量的配置, 可以参考 http://www.cnblogs.com/yourihua/archive/2012/06/04/2529333.html) 我们第一个程序将打印出经典的 "hello world", 下面是代码 package main import ( "fmt" ) func main() { fmt.Println("hello world") } 1 : 将以上的代码保存为 helloworld.go, 加上可执行的权限 (chmod +x helloworld.go) 2 : 在 commond 直接运行 go run helloworld.go 总结 : 对就是这么简单, 有时我们想将程序编译成 bina...阅读全文

博文 2015-03-11 03:00:00 jackkiexu

win7 64为GO初步学习001:环境搭建

下载一: windows 64位下的 go1.4.2.windows-amd64 下载二: windows下的压缩包 liteidex27.2.1.windows-qt5 第一个的安装一律默认下一步。 最后在系统属性——》高级——》系统变量中看到 GOROOT C:'\Go\ 第一步ok! 第二个安装 解开压缩直接放到D盘,在其bin文件夹中 找到 liteide ,发快捷键到桌面即可。 第二部ok...阅读全文

博文 2016-02-12 04:00:00 u011925943

【编程】Golang服务端程序部署

CentOS安装MongoDB 安装 为yum先创建设置文件 vi /etc/yum.repos.d/mongodb-org-4.2.repo 粘贴进去以下内容 [mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc 按ESC退出插入模式,输入:wq保存并退出。下面命令开始安装。 sudo yum install -y mongodb-org 安装完成后...阅读全文

博文 2020-05-13 08:32:43 zhyuzh3d

GO错误

SQL Server 应用程序可将多条 Transact-SQL 语句作为一个批处理发给 SQL Server 去执行。在此批处理中的语句编译成一个执行计划。程序员在 SQL Server 实用工具中执行特定语句,或生成 Transact-SQL 语句脚本在 SQL Server 实用工具中运行,用 GO 来标识批处理的结束。 如果基于 DB-Library、ODBC 或 OLE DB APIs 的应用程序试图执行 GO 命令时会收到语法错误。SQL Server 实用工具永远不会向服务器发送 GO 命令...阅读全文

cmd/go: unsupported GOOS/GOARCH pair linux /amd64

windows下go编译成linux可执行文件报错: cmd/go: unsupported GOOS/GOARCH pair linux /amd64 操作步骤如下: D:\web\go>SET CGO_ENABLED=0 D:\web\go>SET GOOS=linux D:\web\go>SET GOARCH=amd64 D:\web\go>go build moniterLogstash.go 最后还是在 https://github.com/golang/go/issues/24501#issuecomment-375682124 找到原因。 是因为在 SET GOOS=linux 这句后面多了个空格(直接复制的命令。。。) 编译器也没有自动去掉多余的空格,不容易发现错误原因。 原...阅读全文

博文 2020-04-13 09:32:43 魏志明

go 有没有推荐的图片裁剪或压缩的包?

![wx_20180510175814.png](https://static.studygolang.com/180510/078d366ce32c38fa2e4bf97846913afa.png) 比如这是一个 PHP 的包,对图片进行压缩,很简单的两句话,也不用关心图片的格式和形式(url,base64,文件),go 有没有比较流行的图片处理的包,推荐一下,谢谢! 找到一个包 github.com/nfnt/resize,但是也感觉不好用...阅读全文

Node.js + Golang 打包zip文件(夹)

最近项目中的Node版本升级到了8.x,导致在将某个文件夹打包的过程中失败了,之前用的是archiver这个库,在Node6.x版本中没啥问题,但到了Node8.x版本中就会出现下面的异常: TypeError: Cannot read property 'pipesCount' of undefined at module.exports.Readable.pipe (_stream_readable.js:545:16) at module.exports.ZipArchiveOutputStream._smartStream (C:\Workbench\flood\node_modules\compress-commons\lib\archivers\zip\zip-archive-o...阅读全文

博文 2017-09-07 05:34:53 路过麦田

golang 创建压缩文件

import ( "os" "archive/zip" "io" "fmt" "strings" ) // ZipFiles compresses one or many files into a single zip archive file. //压缩多个文件到一个文件里面 // Param 1: 输出的zip文件的名字 // Param 2: 需要添加到zip文件里面的文件 //Param 3: 由于file是绝对路径,打包后可能不是想要的目录,oldform就是filename中需要被替换的掉的路径 //Param 4: 要替换成的路径 func ZipFiles(filename string, files []string, oldform, newform string) er...阅读全文

博文 2018-12-05 19:35:53 woahjknes

Go语言开发环境搭建

本文主要介绍Go语言开发环境搭建,目录及版本仅供参考。 Windows(64bit Win7) 1.http://www.golangtc.com/download 下载go1.5.1.windows-amd64.zip 2.http://www.sublimetext.com/3 下载sublime text 3(IDE) 3.将压缩包(go1.5.1.windows-amd64.zip)解压到D:\Software\Development 4.配置环境变量 (1)新建 GOROOT D:\Software\Development\go (2)新建 GOPATH E:\Code\Go\Test (3)在PATH后追加 ;D:\Software\Development\go\bin;E:\C...阅读全文

golang中compress/bzip2

一、bzip2的简介 bzip2包实现bzip2的解压缩,bzip2是对单个文件进行压缩,可以先进行tar归档,然后进行压缩。 二、bzip2的使用 go标准库中提供了一个对bzip2压缩包进行读取的操作,但是并没有提供进行bzip2压缩操作。 package main import ( "compress/bzip2" "os" "log" "fmt" ) func main() { fz, err := os.Open("1.go.bz2") if err != nil { log.Fatal(err) } w := bzip2.NewReader(fz) buf := make([]byte, 1024 * 100) for { n, err := w.Read(buf) if n =...阅读全文

博文 2018-12-06 16:34:47 laijh

《一个 Go 程序系统线程暴涨的问题》结论

文地址:https://zhuanlan.zhihu.com/p/22474724 作者的结论没写好,我来说两句。。 结论: Docker swarm自己有个函数,叫setTcpUserTimeout,这个函数调用了conn.File()方法,将tcp的fd变成了blocking,而且没有关闭对应的fd。相当于每次设定tcpUserTimeout参数,再去read一下fd,都会产生一个新的线程。因为老的线程在读fd,而fd被设置成blocking了,于是golang的运行时只好再开一个新的。 解决方法: 不要用swarm的这个方法,或者提交到上游让swarm fixed掉,或者自己调用SetsockoptInt…… 好奇八卦了一下TCP_USER_TIMEOUT是什么:根据RFC 5482,...阅读全文

博文 2016-09-19 02:00:00 Lifehacker

golang之cgo---调用C/C++动态库函数

之前说过golang调用C代码的方式可以通过cgo或者是swig,而cgo是不能使用C++相关的东西的,比如标准库或者C++的面向对象特性。怎么办,将c++的功能函数封装成C接口,然后编译成动态库,或者是功能较为简单的可以直接嵌入到go源文件中。   cgo的使用是在linux平台上,在windows平台上可以配置交叉编译器。 动态库头文件:myfuns.h #pragma once #include #include #include #include void fun1(); void fun2(int a); int func3(void **b); // others 动态库名:myfuns.so...阅读全文

博文 2016-09-07 09:00:08 FreeApe

LiteIDE使用

LiteIDE是一款开源,跨平台的轻量级Go语言集成开发环境。操作简单,提示迅速!当然不足之处也有很多,不过除了golad之外,个人觉得比vscode,eclipse等用的更舒心一点(ps:指的是编写golang,每个人的感受不一样,勿喷)目前本人使用的LiteIDE版本号是:x36.1其中让我感受不是很好的两个点是:1.没有自动go lint检测,需要手动。2.更改键盘映射不能捕获按键的内容,需要自己粘贴复制比方说Ctrl+C之类的上去,如果不能接受这两点需要考虑考虑。当然也有可能是我玩的不够透彻,如果有人知道,请评论告知,感激不敬:)。那么,接下来就让我们来学习一下LiteIDE这款国人开发的编辑器的简单用法:当我们使用一款IDE的时候,首先当然是配置一下环境,其次是快捷键,界面布局之类...阅读全文

博文 2019-10-25 15:32:49 aside section._1OhGeD

go get golang.org/x/text 问题

首先在你的项目路径src里新建golang.org/x文件目录,如果有就不用了 目录 打开cmd,输入git clone https://github.com/golang/text.git,clone在golang.org/x目录下,或者可以到https://github.com/golang/text 下载压缩包,放到golang.org/x目录解压 在src目录下,go install -x golang.org/x/text,会在pkg目录下生成一个text.a的包文件,就成功,可以import...阅读全文

博文 2019-07-12 09:32:42 努力的夏目_1bbc

go语言工程管理

工程自管理步骤 1、安装Golang 在这里只说下windows下的安装步骤 这里有详细的windows安装以及环境变量设置步骤 安装完毕之后,我们要在相应目录下新建bin和src目录 2、编译操作 然后在src目录下创建hello.go YOURDIR是你的工程路径 mkdir -p YOURDIR/src/github.com/you/helloworld cd $GOPATH/src/github.com/you/helloworld 最后只要运行两行代码 go run helloworld.go//验证结果 go build//编译成二进制文件 当我们准备发布的时候运行 go install 就可以在bin目录下看到我们编译生成的exe文件 深入一些 除了上面的一些基本内容,我还找了...阅读全文

博文 2017-12-24 02:31:07 czZ__czZ

linux下怎么安装Go开发环境?linux部署golang

linux下怎么安装Go开发环境?linux部署golang 0.请自行安装SSH远程工具 1. SSH远程登录你的linux服务器 2. yum install mercurial安装 mercurial包 3. 安装git包yum install git 4. 安装gccyum install gcc 5. 然后就可以下载golang的压缩包了wget https://go.googlecode.com/files/go1.2.linux-amd64.tar.gz 下载完成 6. 用tar 命令来解压压缩包 tar -zxvf go1.2.linux-amd64.tar.gz 7. 接着我们要添加环境变量 vi /etc/profile 8. 在profile里面添加如下内容export...阅读全文

博文 2017-11-14 12:00:05 lovelanglangyou

把别人的Tcl/Tk代码加入到Go语言里11 游戏4 红心游戏

a 首先打开网页下载tcl/tk游戏源码http://sourceforge.net/projects/tkgames/files/latest/download?source=typ_redirect b 把压缩包里的tcl/tk源代码文件tkHearts-0.90用文本编辑器打开,并把所有内容 复制到如下go源代码的init_script字符串常量里 package main import "github.com/nsf/gothic" const init_script = ` #把Tcl/Tk源代码复制到这个常量里 ` func main() { ir := gothic.NewInterpreter(init_script) <-ir.Done } c 在LiteIDE里或命令行里...阅读全文

博文 2015-05-13 16:00:07 名字不能长