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

go语言使用grpc的步骤

grpc提供了很好的rpc远程过程调用功能,封装了中间环节,让使用rpc的客户服务端只需要关注自己的业务即可。 go语言下使用gprc的步骤如下: 1、安装go语言 go语言的安装不再详述,具体参见:https://golang.org/doc/install grpc需要在go语言1.5或以上版本工作 2、安装grpc 安装好go语言后,调用如下: $ go get google.golang.org/grpc 3、安装 Protocol Buffers v3 到https://github.com/google/protobuf/releases下下载对应平台和版本(protoc--.zip)的压缩包或安装包,解压到你自己的目录下,同时将目录下的bi...阅读全文

博文 2016-09-03 09:00:09 sky101010ws

静态网站部署工具 Stout

Stout 是一个可靠的静态网站部署工具。用它将网站上传到 S3 比用其它工具更加可靠。它可以替代支付服务如 Divshot ,动态 web 服务器 Rails,或者手动上传您的网站到S3 或 FTP服务器。 ### Features * 版本脚本和样式文件,以确保您的网页部署时或部署后不使用不一致的文件集。 * 支持返回到以前的版本 * 不依赖于任何特定的构建工具或工作流(它是一个用 Go 写的独立的可执行文件) * 不需要任何类型的数据存储维护状态或历史记录 * 可以由多个开发人员同时使用,不会有锁定或不一致的状态危险 * 正确处理缓存头 * 支持无冲突部署多个项目到同一网站的不同子目录 * 压缩文件传输更快 ![CF](http://static.oschina.n...阅读全文

linux环境下golang安装第三方库的时候出错的决办法

1.错误描述 使用如下方式安装beego的时候出错 go get github.com/astaxie/beego 错误信息: go install unicode/utf8: open /opt/go/pkg/linux_amd64/unicode/utf8.a: permission denied go install unicode: open /opt/go/pkg/linux_amd64/unicode.a: permission denied go install math: open /opt/go/pkg/linux_amd64/math.a: permission denied go install sort: open /opt/go/pkg/linux_amd64/so...阅读全文

博文 2015-06-17 20:03:56 mybc724

异构计算助力客户春节webp图片编码

摘要: 背景与挑战 技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约减少 1/3;Google+ 移动应用采用 WebP 图片格式后,每天节省了 50TB 数据存储空间。 **背景与挑战** 科技博客 GigaOM 曾报道:YouTube 的视频略缩图采用 WebP 格式后,网页加载速度提升了 10%;谷歌的 Chrome 网上应用商店采用 WebP 格式图片后,每天可以节省几 TB 的带宽,页面平均加载时间大约减少 1/3;Google+ 移动应用采用 WebP 图片格式后,每天节省了 50TB 数据存储空...阅读全文

在windows环境下搭建go编程环境

go语言是google近几年刚推出的一种语言,以前经常关注每月编程语言排行榜,对此语言只是听过,没想到哪天我也会使用到这种语言。因为go语言很年轻,所以网上学习资料很难找,老外那里资料会多些,但是国内访问又会受到限制,真是让人恼火。 先到http://code.google.com/p/go/downloads/list上下载两个文件。 这两个文件是一定都需要的。开始我只是将压缩包解压了,但是一直报错,莫名其妙的。还得说说下着两个文件有多费劲。从上午到下午四点,我一直在下载这两个文件,但是真心是下载不下来啊。国内访问老外的网站受限太严重了,我是彻底无语了(也许跟公司里面网速受限多少有些关系吧)。但是工作还得继续啊。东西是死的,人是活的,我往qq上一瞄,见一正在日本留学的同学在线,忙让他帮我下...阅读全文

Kali Linux安装Putty端口转发工具教程:

Putty官网下载链接:https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.htmlZip压缩包解压:roo@kali:~# cd ngrok roo@kali:~# unzip ngrok-stable-linux-amd64.zip roo@kali:~# cd ngrok 注:若不成功,直接解压提取到此处!第二种:Golang语言环境下载地址:roo@kali:~# https://studygolang.com/dlroo@kali:~# tar -xzvf 压缩包.tar.gz -C /root/home/Desktop roo@kali:~# cd 压缩包.tar.gz roo@kali:~# maketar.gz格...阅读全文

博文 2019-03-14 03:34:39 强大技术

golang中archive/zip包

一、ZIP的操作 压缩、解压 二、GO中压缩操作 1、创建zip文件 2、向这个zip文件里写入要压缩的文件的头部信息和文件信息 package main import ( "os" "log" "archive/zip" "io" "fmt" ) func main() { err := Zip("demo.zip", []string{}) if err != nil { fmt.Println(err) } } func Zip(zipFile string, fileList []string) error { // 创建 zip 包文件 fw, err := os.Create(zipFile) if err != nil { log.Fatal() } defer fw.Clos...阅读全文

博文 2018-12-02 10:34:40 laijh

golang 关于bool一个奇怪的问题

之前,遇到一个奇怪的问题,先上代码 type BoolStruct struct { b1 bool b2 bool b3 bool b4 bool b5 bool b6 bool b7 bool b8 bool } func (bs *BoolStruct) DoSomething() { DoSomethingForBool( bs.b1, bs.b2, bs.b3, bs.b4, bs.b5, bs.b6, bs.b7, bs.b8) } func DoSomethingForBool( b1 bool, b2 bool, b3 bool, b4 bool, b5 bool, b6 bool, b7 bool, b8 bool) byte { var b byte if b1 { //...阅读全文

博文 2020-05-14 11:33:01 laomaozi

0-1 在Windows下编译Golang程序

建议维持如下目录结构 foo -->src -->bin -->pkg 编译过程一般来说分成如下几步 前从 git/svn 服务器抓取最新的版本 清理现场 获得时间戳,以便在后续编译过程中带入作为版本号的后缀 编译,携带若干参数(资源文件、不含调试信息、版本号,目标文件名称) 复制到特定文件夹 连同配置文件一起压缩,压缩文件带有上述时间戳 导出源代码,并压缩,压缩文件带有上述时间戳 清理现场 上述步骤连续做下来,没有一个工程师可以可以连续无差错做两遍。 这样的场景适合创建一个批处理文件,如果在Linux下的话就是Shell脚本文件。 下面是一个批处理文件的示例,请参阅。

 @echo off echo 编译打包命令如下 echo ====================...阅读全文

博文 2018-09-16 16:34:40 佛祖君

go语言开发动态库

go build 可以指定buildmode。分为了多种模式。具体模式如下。 模式 说明(当前go版本 1.10.3) archive 编译成二进制文件。一般是静态库文件。 xx.a c-archive 编译成C归档文件。C可调用的静态库。xx.a。注意要编译成此类文件需要import C 并且要外部调用的函数要使用 “//export 函数名” 的方式在函数上方注释。否则函数默认不会被导出。 c-shared 编译成C共享库。同样需要 import “C” 和在函数上方注释 // export xxx default 对于有main包的直接编译成可执行文件。没有main包的,编译成.a文件 exe 编译成window可执行程序 plugin 将main包和依赖的包一起编译成go plugi...阅读全文

博文 2020-04-30 03:32:42 笑吧小鸟

Golang、python关于压缩和解压的解释。

golang中,存在 "compress/zlib" 这个包,里面包含各压缩解压的各项设置,比如压缩级别/压缩速度。 比如 zlib包里面的常量如下: const ( NoCompression = flate.NoCompression //没有压缩 BestSpeed = flate.BestSpeed //压缩速度 BestCompression = flate.BestCompression //压缩率 DefaultCompression = flate.DefaultCompression//默认压缩 ) 压缩速度和压缩率这两个是一个相互矛盾的过程,这里面的取舍还是需要各位去仔细甄别使用场景。 func main() { b := []byte(`china GO GO !!!的...阅读全文

博文 2017-03-15 18:00:20 大洋的顶端

Go是如何实现protobuf的编解码的(1):原理

文链接:https://mp.weixin.qq.com/s/O8... 这是一篇姊妹篇文章,浅析一下Go是如何实现protobuf编解码的: Go是如何实现protobuf的编解码的(1): 原理 Go是如何实现protobuf的编解码的(2): 源码 本编是第一篇。 Protocol Buffers介绍 Protocol buffers缩写为protobuf,是由Google创造的一种用于序列化的标记语言,项目Github仓库:https://github.com/protocolbu...。 Protobuf主要用于不同的编程语言的协作RPC场景下,定义需要序列化的数据格式。Protobuf本质上仅仅是一种用于交互的结构式定义,从功能上和XML、JSON等各种其他的交互形式都并无本质不...阅读全文

go get提示error: ...is not using a known version control system

go get提示error: ...is not using a known version control system 错误提示代码 go get -v github.com/go-delve/delve/cmd/dlv package golang.org/x/tools/go/gcexportdata: directory "E:\go\golang\src\golang.org\x\tools\go\gcexportdata" is not using a known version control system 这个原因是github.com/go-delve/delve/cmd/dlv 包直接下载的zip压缩包文件,修改文件名中-master因此没有加入到git版本控制系统中 ...阅读全文

博文 2020-04-11 15:32:43 哆啦在这A梦在哪

go环境配置

windows: 下载压缩包(32位或者64位) 解压到c盘 打开系统环境变量,新建环境变量。 GOROOT = C:\go GOPATH = D:\gowork //这个是你的go工程存放的目录 在系统path后面添加go.exe的路径 C:\go\bin 安装liteide,打开查看--编辑当前环境: # native compiler windows 386 GOROOT=c:\go GOBIN=c:\go\bin GOARCH=amd64 GOOS=windows CGO_ENABLED=1 #GO15VENDOREXPERIMENT=1 #PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH% LITEIDE_GDB=gdb LITEIDE_MAKE=min...阅读全文

博文 2016-09-02 17:00:02 skylzc

golang docker部署

最简单的部署方式是拿生成的二进制文件直接构成镜像,但作者介绍的部署方式是镜像构建阶段使用源码自动编译成二进制文件的部署 1,首先写个将部署在docker中的http服务 package main import ( "fmt" "net/http" ) func IndexHandler(w http.ResponseWriter, r *http.Request) { fmt.Fprintln(w, "hello docker") } func main() { http.HandleFunc("/", IndexHandler) err := http.ListenAndServe("0.0.0.0:80", nil) if err != nil { fmt.Println(err) } ...阅读全文

go环境配置

windows: 下载压缩包(32位或者64位) 解压到c盘 打开系统环境变量,新建环境变量。 GOROOT = C:\go GOPATH = D:\gowork //这个是你的go工程存放的目录 在系统path后面添加go.exe的路径 C:\go\bin 安装liteide,打开查看--编辑当前环境: # native compiler windows 386 GOROOT=c:\go GOBIN=c:\go\bin GOARCH=amd64 GOOS=windows CGO_ENABLED=1 #GO15VENDOREXPERIMENT=1 #PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH% LITEIDE_GDB=gdb LITEIDE_MAKE=min...阅读全文

博文 2016-09-08 17:00:00 skylzc

go环境配置

windows: 下载压缩包(32位或者64位) 解压到c盘 打开系统环境变量,新建环境变量。 GOROOT = C:\go GOPATH = D:\gowork //这个是你的go工程存放的目录 在系统path后面添加go.exe的路径 C:\go\bin 安装liteide,打开查看--编辑当前环境: # native compiler windows 386 GOROOT=c:\go GOBIN=c:\go\bin GOARCH=amd64 GOOS=windows CGO_ENABLED=1 #GO15VENDOREXPERIMENT=1 #PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH% LITEIDE_GDB=gdb LITEIDE_MAKE=min...阅读全文

博文 2016-09-02 08:00:03 skylzc

Golang语言下使用Protocol Buffer教程

代码仓库地址 一、介绍 Protobuf是Google旗下的一款平台无关,语言无关,可扩展的序列化结构数据格式。所以很适合用做数据存储和作为不同应用,不同语言之间相互通信的数据交换格式,只要实现相同的协议格式即同一proto文件被编译成不同的语言版本,加入到各自的工程中去,这样不同语言就可以解析其他语言通过Protobuf序列化的数据。目前官网提供了C++,Python,JAVA,GO等语言的支持。 相对于JSON和XML具有以下优点: 简洁 体积小:消息大小只需要XML的1/10 ~ 1⁄3 速度快:解析速度比XML快20 ~ 100倍 使用Protobuf的编译器,可以生成更容易在编程中使用的数据访问代码 更好的兼容性,Protobuf设计的一个原则就是要能够很好的支持向下或向上兼容 注...阅读全文

博文 2018-08-14 00:30:02 OctoptusLian

迈出第一步:做好提前准备

目标 检查操作系统 检查并安装所需工具 可选安装Node及npm 任务实现 1.2.1 操作系统 学习,必须要有一个好的场地,我们耗费精力给你挑选好了一个安全又方便的场地。但是该场地有一些硬性条件,请一定要注意。 推荐使用的操作系统为64位的 Ubuntu 16.04 LTS,系统内核为 GNU/Linux 4.13.0-36-generic x86_64。 硬件资源要求:内存最低为2GB,最好3G以上; 磁盘空间为30GB或更高。 如果计算机默认为Windows操作系统, 可以在Windows系统中安装一个VMware虚拟机应用程序, 然后在VMWare虚拟机中安装Ubuntu 16.04系统, 最后在Window操作系统中再安装一个远程连接工具(如XShell或SecureCRT),以方...阅读全文

博文 2019-01-09 11:34:47 Terry_007

区块链火爆,再不知道Golang就晚了

Golang,也叫Go语言,是2009年刚刚被发发布的一门新语言。 区块链,是2019年我国提出的新战略。 一个不争的事实就是,大多数从事区块链开发的小伙伴都是用Golang,大多数招聘区块链技术工作的公司都要求Golang背景的人员。 区块链,作为一个技术,本身跟开发语言没有一对一关系。 事实上,纯技术角度来看,编写区块链最好的语言反而是古老的C++,比JAVA还古老的语言。甚至,JAVA、Python、Rust等等语言都可以用来编写区块链程序。 Golang成为区块链世界的主流,除了市场的选择,还有这种语言自身的优点,比如:1. 天生支持并发,go关键字直接搞定;2. 采用协程来实现高并发,管道负责通信;3. 代码编译成二进制,执行速度快,堪比C语言;4. 适合做分布式系统开发;那么下面...阅读全文

博文 2019-12-17 04:32:40 Testfan软件测试

文件目录嵌入 staticfiles

Staticfiles可以让你嵌入文件的目录到你的Go语言二进制文件中。它针对性能和文件大小进行了优化,并在嵌入前自动压缩一切。下面是它的一些特性: * 压缩文件,以确保生成的二进制文件不臃肿。 * 提供文件的压缩包(同时仍然允许不支持它的客户服务)。 * 忽略隐藏文件(任何开头)。 * 快速。命令行工具读取并同时压缩文件,所得到的Go文件服务器上的文件速度非常快,避免了不必要的分配。 * 没有内置的开发模式,但可以很容易实现(参见本地开发模式)...阅读全文

go环境配置

windows: 下载压缩包(32位或者64位) 解压到c盘 打开系统环境变量,新建环境变量。 GOROOT = C:\go GOPATH = D:\gowork //这个是你的go工程存放的目录 在系统path后面添加go.exe的路径 C:\go\bin 安装liteide,打开查看--编辑当前环境: # native compiler windows 386 GOROOT=c:\go GOBIN=c:\go\bin GOARCH=amd64 GOOS=windows CGO_ENABLED=1 #GO15VENDOREXPERIMENT=1 #PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH% LITEIDE_GDB=gdb LITEIDE_MAKE=min...阅读全文

博文 2016-09-02 16:00:04 skylzc

go环境配置

windows: 下载压缩包(32位或者64位) 解压到c盘 打开系统环境变量,新建环境变量。 GOROOT = C:\go GOPATH = D:\gowork //这个是你的go工程存放的目录 在系统path后面添加go.exe的路径 C:\go\bin 安装liteide,打开查看--编辑当前环境: # native compiler windows 386 GOROOT=c:\go GOBIN=c:\go\bin GOARCH=amd64 GOOS=windows CGO_ENABLED=1 #GO15VENDOREXPERIMENT=1 #PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH% LITEIDE_GDB=gdb LITEIDE_MAKE=min...阅读全文

博文 2016-09-02 13:00:04 skylzc

IntelliJ IDEA 安装golang 插件

作者的机器为mac OS 用户首先需要在自己的个人机器上安装好 golang 的环境,详细可以参考 hyperledger fabric 1.0.5 分布式部署 (一)安装 golang 的部分。 然后用户需要登陆 IDEA 的官网下载新版的golang 插件,下载地址:IDEA golang插件 安装 golang 插件 用户在打开 IDEA 工具后,可以选择 "Configure" -> "Plugins" 选择 "Install plugin from disk ..",再选择刚才下载的IDEA golang 插件压缩包(注意:压缩包无需解压)。 如果用户下载的插件无法直接安装,那么有可能是IDEA 版本和插件版本无法匹配,用户也可以选择直接通过IDEA 进行下载。 无论用户使用哪种方...阅读全文

博文 2018-03-09 14:30:01 chenfool

19.蛤蟆笔记go语言——使用Mysql驱动

19.蛤蟆笔记go语言——使用Mysql驱动 MySQL驱动 Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,如下: https://github.com/Go-SQL-Driver/MySQL 下载得到 mysql-master.zip压缩包,解压包含需要的go文件。 创建库和表 create database test; CREATE TABLE `userinfo` ( `uid`INT(10) NOT NULL AUTO_INCREMENT, `username`VARCHAR(64) NULL DEFAULT NULL, `departname` VARCHAR(64) NULL DEFAULT NULL, `...阅读全文

博文 2016-08-23 11:00:55 notbaron

Kafka消息体大小设置的一些细节

微信公众号「后端进阶」,专注后端技术分享:Java、Golang、WEB框架、分布式中间件、服务治理等等。 还记得前几天有个小伙伴跟我反馈发送消息时提示请求数据过大的异常吗?经过调整 max.request.size 的大小之后,又报了了如下异常: image 查看相关资料后,发现 Broker 端对 Producer 发送过来的消息也有一定的大小限制,这个参数叫 message.max.bytes,这个参数决定了 Broker 能够接收到的最大消息的大小,它的默认值为 977 KB,而 max.request.size 的值已经设置成 2M 大小了,很显然已经比 message.max.bytes 大了很多,因此消息大于 997KB 时,就会抛出如上异常。 值得一提的是,主题配置也有一个参...阅读全文

博文 2019-10-28 23:33:00 aside section._1OhGeD

go环境配置

windows: 下载压缩包(32位或者64位) 解压到c盘 打开系统环境变量,新建环境变量。 GOROOT = C:\go GOPATH = D:\gowork //这个是你的go工程存放的目录 在系统path后面添加go.exe的路径 C:\go\bin 安装liteide,打开查看--编辑当前环境: # native compiler windows 386 GOROOT=c:\go GOBIN=c:\go\bin GOARCH=amd64 GOOS=windows CGO_ENABLED=1 #GO15VENDOREXPERIMENT=1 #PATH=c:\mingw32\bin;%GOROOT%\bin;%PATH% LITEIDE_GDB=gdb LITEIDE_MAKE=min...阅读全文

博文 2016-09-02 14:00:02 skylzc

19.蛤蟆笔记go语言——使用Mysql驱动

19.蛤蟆笔记go语言——使用Mysql驱动 MySQL驱动 Go中支持MySQL的驱动目前比较多,有如下几种,有些是支持database/sql标准,而有些是采用了自己的实现接口,如下: https://github.com/Go-SQL-Driver/MySQL 下载得到 mysql-master.zip压缩包,解压包含需要的go文件。 创建库和表 create database test; CREATE TABLE `userinfo` ( `uid`INT(10) NOT NULL AUTO_INCREMENT, `username`VARCHAR(64) NULL DEFAULT NULL, `departname` VARCHAR(64) NULL DEFAULT NULL, `...阅读全文

博文 2016-09-15 02:00:04 notbaron

在Eclipse中使用Gradle开发web3j以太坊应用

在我们的[web3j](http://xc.hubwiz.com/course/5b2b6e82c02e6b6a59171de2?affid=76studygolang)以太坊开发课程中,预置代码是在终端命令行使用gradle进行构建的。如果希望在熟悉的Eclipse中开发web3j以太坊应用,这个快速教程将告诉你如何进行配置。 我们将分为6个步骤来介绍如何在Eclipse中使用Gradle项目开发web3j以太坊应用: 1. 安装Gradle工具 2. 安装Eclipse的Gradle插件 3. 创建Gradle项目 4. 配置Gradle项目 5. 创建演示类代码 6. 运行仿真器和演示代码 ## 1、安装Gradle 官网下载最新的< ahref="https://services.g...阅读全文

博文 2018-07-06 16:26:40 hubwiz

Go WebAssembly 入门(二)

系列文章 Go WebAssembly 入门(一) Getting Started 编写main.go package main import ( "strconv" "syscall/js" ) // 传入value1, value2, result三个元素的id,将value1+value2结果赋给result元素 func add(ids []js.Value) { // 根据id获取输入值 value1 := js.Global().Get("document").Call("getElementById", ids[0].String()).Get("value").String() value2 := js.Global().Get("document").Call("getEl...阅读全文

博文 2019-02-02 19:34:44 wlchn

Go语言安装小记

1.登陆网址https://golang.org下载源码 wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz2.解压缩文件: tar -C /usr/local -xzf go$VERSION.$OS-$ARCH.tar.gz3.在文件/etc/profile添加环境变量export PATH=$PATH:/usr/local/go/binexport GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export PATH=$PATH:$GOBIN export GOPATH=$HOME/gopath (可选设置)更新环境变量:source /etc/profi...阅读全文

golang 文件操作之三

1.打包文件 // This example uses zip but standard library // also supports tar archives package main import ( "archive/zip" "log" "os" ) func main() { // 创建一个打包文件 outFile, err := os.Create("test.zip") if err != nil { log.Fatal(err) } defer outFile.Close() // 创建zip writer zipWriter := zip.NewWriter(outFile) // 往打包文件中写文件。 // 这里我们使用硬编码的内容,你可以遍历一个文件夹,把文件夹下的...阅读全文

博文 2018-02-07 15:34:39 soledad

Mac下安装golang

前言:越来越多人开始走学习golang之路,包括我身边的一些技术同事给自己“充电”新技术,能在未来工作中更好的生存发展。个人使用Mac环境,下面大概简述一安装过程:一、准备工作官网下载安装包:备注:目前最新稳定版本是v1.9开发工具包又分为安装版和压缩版。安装版是Mac和Windows特有的,他们的名字类似于:go1.9.darwin-amd64.pkggo1.9.windows-386.msigo1.9.windows-amd64.msi安装版,有点傻瓜式安装,环境路径都默认好,操作起来比较简单方便。压缩版的就是一个压缩文件,可以解压得到里面的内容,他们的名字类似于:go1.9.darwin-amd64.tar.gzgo1.9.linux-386.tar.gzgo1.9.linux-amd...阅读全文

Golang特性以及变量的使用方式

引言 Go语言(又称Golang)结合了编译语言的运行速度与脚本语言的开发速度,是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。 Golang特性 环境变量之GOROOT、GOPATH、Path GOROOT: 指定了go sdk的安装目录 GOPATH: Golang的工作目录 Path: 指定了go sdk的bin目录 go run与go build go build可将.go文件编译成可执行文件,因为可执行文件打包了Golang的运行环境,所以文件变大了,且该可执行文件在没有Golang运行环境下任然可以运行,实际生产中一般使用go build编译成可执行文件。 go run是一条编译运行一体化的执行语句,所以运行速度没有直接运行go build所编译...阅读全文

博文 2020-05-26 11:35:07 Zzceaon

ClojureScript 的 Go 编译器 Cljs2go

Cljs2go 是 ClojureScript 转换为 Go 的编译器。 ClojureScript 转换到 Go,不是分支出来,而是直接覆盖到 ClojureScript 上。Go 是从 cljs.go.compiler 上发行出去,而 cljs.go.compiler 是 cljs.compiler 的一个补丁版本。在运行时,会提供简单的 JS 兼容以避免接触 cljs.core,这些 js 和 goog 包不打算对用户开放使用。 一旦编译器开始工作,该计划将提供第二个猴子补丁(monkey patch),这回是提供 Java 依赖,像 java.io.File 和其他 Clojure 副本,clojure.java.io。此补丁可以将编译器本身编译成 Go。这既不会改变运...阅读全文

开源项目 2016-09-07 16:07:08 hraberg

golang 生成 shared object 供其他语言使用

golang 生成 shared object 供其他语言使用 LINUX so 文件基本概念和命名规则 libxmns.so.1.2.3 1 major 2 minor 3 release major 增加,原有函数接口已经不能使用,minor和release 复归于0 minor 增加, 新增加了一些函数接口,但原有函数接口还能使用, release 复归于0 release 增加,修改一些bug, 函数接口不变 c-go 模板-供c、java等编译型语言或脚本语言使用 package main import "C" import "fmt" //export Sum func Sum(a int, b int) int { return a + b } //export GetName...阅读全文

关于编程语言的一些认知和思考

计算机本质上来讲就是可以运行一系列命令的机器,比如电灯拥有开和关的两个命令,计算机相比电灯要更加复杂一些罢了。 编程语言就是控制计算机的命令,好比电灯开我们就用数字1来表示,关我们就是用数字0来表示。可是对人类的自然语言来说01这样的命令实在太复杂了。如果我想让计算机进行加减乘除的计算可能就需要输入一串根本看不懂的01组合。好在后来发明了汇编语言。 汇编语言 汇编语言让我们可以使用字母符号来给计算机发送指令。比如: 操作:寄存器BX的内容送到AX中 1000100111011000 机器指令 mov ax,bx 汇编指令 汇编是直接面向CPU的程序设计语言,如果我们想要开发更高级的程序使用汇编语言可能就费劲了。这时候静态类型的语言就出现了。 静态语言 我们所谓的静态语言是什么?比如C语言这样...阅读全文

博文 2017-08-15 09:05:04 ppmoon

vim8 配置NERD tree树形目录插件

vim8配置树目录网上有很多教程,我这边记录一下,备忘:1.下载NERD tree 下载地址是:https://www.vim.org/scripts/s... wget https://www.vim.org/scripts/download_script.php?src_id=23731 这个链接有可能会变化。。 我这里下载的是5.0.0的 加压配置cd ~ll .vim #我这里面没有任何文件mkdir -p .vim/pack/NERD_tree/start/NERD_tree #NERD_tree目录名称要和插件名称保持一致...cd .vim/pack/NERD_tree/start/NERD_tree cp ~/nerd_tree/nerd_tree.zip ./ #将压缩包复...阅读全文

博文 2018-12-12 18:34:47 wangyibo5843

linux下安装go语言环境摘自:Go程序员开发公众号

1.登录你的Linux服务器 2.安装 mercurial包 [root@oldboy ~]# yum install mercurial 3.安装git包 [root@oldboy ~]# yum install git 4.安装gcc [root@oldboy ~]# yum install gcc 5.下载Go语言的压缩包:( 可选择最新的Go版本 ) [root@oldboy ~]# cd /usr/local/[root@oldboy local]# wget https://go.googlecode.com/files/go1.9.1.linux-amd64.tar.gz注意:如果wget下载失败,可以去Go语言资源站 https://www.golangtc.com/down...阅读全文

博文 2018-09-14 05:35:10 Gg丶潇亚琛

怎样创建一个RPM包(译文)

文 [how to build RPM](https://access.redhat.com/sites/default/files/attachments/rpm_building_howto.pdf) Author: Chris Negus Editor: Allison Pranger Date: 09/16/2011 译文: #概览 您已经创建了一些要安装在Red Hat Enterprise Linux系统上的软件。现在的问题是,“软件完成后,如何打包该软件以使其他人易于安装和管理?” 答案是将其打包成RPM安装包。 尽管有其他方式,可以将软件打包成特定格式的压缩包(通过压缩包或其他类型的存档文件)通过解压缩的方式安装到Linux 系统,但是将Linux软件打包为RPM,可以为您带...阅读全文

博文 2020-01-12 18:30:58 guoapeng

阿里云虚拟主机使用教程

课程介绍 阿里云虚拟主机市场占用率第一,20年专业品质保证;产品特点:预装网站运行环境,赠送正版数据库,可通过图形化控制面板管理,主要用于搭建网站。 独享系列虚机特点:客户独享整台服务器资源,无资源争抢更稳定,不限流量更快速、独立IP更易推广,适合企业建站客户; 共享系列虚机特点:多客户共享服务器硬件资源,价格优惠,简单易用,适合于开发者、个人站长建站; 产品详情:https://wanwang.aliyun.com/hosting/ 课时列表 • 课时1:购买虚拟主机和初始化密码信息 • 课时2:FTP 上传与解压缩文件 • 课时3:绑定并解析域名 • 课时4:切换语言环境 • 课时5:虚拟主机临时域名的使用 开始学习http:...阅读全文

【Go】使用压缩文件优化io (二)

文链接: https://blog.thinkeridea.com/... 上一篇文章《使用压缩文件优化io (一)》中记录了日志备份 io 优化方案,使用文件流数据压缩方案优化 io 性能,效果十分显著。这篇文章记录数据分析前置清洗、格式化数据的 io 优化方案,我们有一台专用的日志前置处理服务器,所有业务日志通过这台机器从 OSS 拉取回来清洗、格式化,最后进入到数据仓储中便于后续的分析。 随着业务扩展这台服务器压力越来越大,高峰时数据延迟越来越厉害,早期也是使用 Python 脚本 + awk 以及一些 shell 命令完成相关工作,在数据集不是很大的时候这种方案很好,效率也很高,随着数据集变大,发现服务器负载很高,经过分析是还是 io 阻塞,依旧采用对数据流进行处理的方案优化io,以...阅读全文

博文 2019-07-08 10:32:42 thinkeridea

2.go命令源文件分析

回顾 上一节我们成功安装了golang,并设置好了环境变量,能使用go run来测试源码 这里我们介绍下go语言的源码: 以.go结尾的文件认为是go语言的源文件,go语言的源文件可以分为三类: 命令源文件: package声明为main 有且只有一个main函数,会编译成可执行文件 库源文件: package不能声明为main且不能包含main函数,会编译成库文件 测试源文件:以_test.go结尾的文件,主要用来对其他源码的测试。 每个源文件以包的声明语句开始,说明该源文件是属于哪个包。 import 导入依赖的包,少导入或者多导入都会导致报错。 这里我们导入一个标准库:fmt 实现了格式化的IO操作,我们可以用它输出我们想要的东西到命令行 go语言中文网有一个标准库的中文文档:http...阅读全文

go get提示error: ...is not using a known version control system

go get提示error: ...is not using a known version control system 错误提示代码 go get -v github.com/go-delve/delve/cmd/dlv package golang.org/x/tools/go/gcexportdata: directory "E:\go\golang\src\golang.org\x\tools\go\gcexportdata" is not using a known version control system 这个原因是github.com/go-delve/delve/cmd/dlv 包直接下载的zip压缩包文件,修改文件名中-master因此没有加入到git版本控制系统中 ...阅读全文

博文 2020-04-11 15:32:43 哆啦在这A梦在哪

golang笔记之接口(二)

接口类型具体描述了一系列方法的集合,一个实现了这些方法的具体类型是这个接口类型的实例。 io.Writer类型是用得最广泛的接口之一,因为它提供了所有类型的写入bytes的抽象,包括文件类型,内存缓冲区,网络链接,HTTP客户端,压缩工具,哈希等等。io包中定义了很多其它有用的接口类型。Reader可以代表任意可以读取bytes的类型,Closer可以是任意可以关闭的值,例如一个文件或是网络链接。(到现在你可能注意到了很多Go语言中单方法接口的命名习惯) package io type Reader interface { Read(p []byte) (n int, err error) } type Closer interface { Close() error } 再往下看,我们发现...阅读全文

博文 2019-05-07 19:34:59 月下独酌100

CentOS 7 安装Golang

下载Golang安装包 前往Golang官网下载安装包 选择相应版本下载,我选择的版本是go1.10.2.linux-amd64.tar.gz 解压安装包 进入放置压缩包的目录 将压缩包解压到/usr/local目录下 sudo tar -C /usr/local/ -xzvf go1.10.2.linux-amd64.tar.gz 配置环境变量 编辑profile文件 sudo vim /etc/profile 在最后一行加入 export GOROOT=/usr/local/go export GOPATH=/home/zhangboo/goProject export GOBIN=$GOPATH/bin export PATH=$PATH:$GOROOT/bin export PATH...阅读全文

博文 2018-11-30 17:34:48 zhangboo的程序猿之路

载 --- Linux下Go的安装、配置、升级和卸载

1. 手动安装 Go 由于大家使用的 Linux 版本不尽相同,也不见得是最新版本或需要版本的 Go 语言包,所以我们说一下如何手动安装指定版本。 1.下载Go发行版 从官方地址:https://golang.org/dl/ 上下载合适的 二进制发行版 (例如: go1.10.4.linux-amd64.tar.gz ): wget https://dl.google.com/go/go1.10.4.linux-amd64.tar.gz 1 2.提取压缩包 提取压缩包到合适的目录(例如: /usr/local ): sudo tar -xzf go1.10.4.linux-amd64.tar.gz -C /usr/local 1 3.建立软链接 sudo ln -s /usr/local/g...阅读全文

博文 2018-12-06 01:45:09 yuantiancai