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

golang 使用 strings.Split 切割的注意

s := strings.Split("", "") fmt.Println(s, len(s)) s = strings.Split("abc,abc", "") fmt.Println(s, len(s)) s = strings.Split("", ",") fmt.Println(s, len(s)) s = strings.Split("abc,abc", ",") fmt.Println(s, len(s)) s = strings.Split("abc,abc", "|") fmt.Println(s, len(s)) fmt.Println(len("")) fmt.Println(len([]string{""})) str := "" fmt.Println(str[0]...阅读全文

博文 2014-10-04 19:27:43 984195889

go build和go install的区别

go build通过go build加上要编译的Go源文件名,我们即可得到一个可执行文件,默认情况下这个文件的名字为源文件名字去掉.go后缀。 $ go build hello.go $ lshello hello.go 当然我们也 可以通过-o选项来指定其他名字: $ go build -o mygo hello.go $ lsmygo hello.go 如果我们在go-examples目录下直接执行go build命令,后面不带文件名,我们将得到一个与目录名同名的可执行文件: $ go build $ lsgo-examples hello.go go install与build命令相比,install命令在编译源码后还会将可执行文件或库文件安装到约定的目录下。 go install编译...阅读全文

golang 获取当前路径和上一级父路径(目录)

golang 获取当前路径和上一级父路径(目录) package main import ( "fmt" "log" "os" "path/filepath" "strings" ) func substr(s string, pos, length int) string { runes := []rune(s) l := pos + length if l > len(runes) { l = len(runes) } return string(runes[pos:l]) } func getParentDirectory(dirctory string) string { return substr(dirctory, 0, strings.LastIndex(dirctory, "...阅读全文

博文 2015-06-17 20:03:59 kuzuozhou

Golang中使用set

Go中是不提供Set类型,Set是一个集合,set里的元素不能重复。 两种思路 2 basic set implementations 使用map实现 在Golang中通常使用map来实现set,map中的key为唯一值,这与set的特性一致。 简单实现,如下: set := make(map[string]bool) // New empty set set["Foo"] = true // Add for k := range set { // Loop fmt.Println(k) } delete(set, "Foo") // Delete size := len(set) // Size exists := set["Foo"] // Membership map的value值是布...阅读全文

博文 2020-03-26 07:32:40 DevilRoshan

Go 导入当前项目下的包

其实和其他语言很类似 import ( "../controllers" //这里就是导入上一级目录中的controllers "./models" //同一级目录中的models "./models/entitys" //当前目录下的entitys "../../routers" //上两级目录的routers ) 当然也可以把写好的组件放入$GoPath的src中,这样就不需要关心目录是哪一层,只需要类似这样调用就好了: import ( "myproject/controllers" //这里就是自己项目的名字+包名 ...阅读全文

博文 2017-01-24 03:00:03 KelvinQ

用 golang 1.11 module 做项目版本管理

go 1.11 有了对模块的实验性支持,大部分的子命令都知道如何处理一个模块,比如 run build install get list mod 子命令,第三方工具可能会支持的晚一些。到 go 1.12 会删除对 GOPATH 的支持,go get 命令也会变成只能获取模块,不能像现在这样直接获取一个裸包。 可以用环境变量 GO111MODULE 开启或关闭模块支持,它有三个可选值:off、on、auto,默认值是 auto。 GO111MODULE=off 无模块支持,go 会从 GOPATH 和 vendor 文件夹寻找包。 GO111MODULE=on 模块支持,go 会忽略 GOPATH 和 vendor 文件夹,只根据 go.mod 下载依赖。 GO111MODULE=auto 在...阅读全文

博文 2018-07-30 23:34:50 yesuu

新手问题 go build 找不到 go source files

mac环境,在项目目录下 go build ,显示“can't load package: package .: no buildable Go source files in /Users/xxxx/Documents/goworkspace/test/calcproj” 项目目录:/Users/xxxx/Documents/goworkspace/test/calcproj 目录下有 bin /pkg/src目录 ,src下有calc.go (包含main函数) $ echo $GOPATH /Users/xxxx/Documents/goworkspace/test/calcproj/ go install 也是同样的问题,找不到 Go s...阅读全文

Golang项目目录结构组织

其实golang的工程管理还是挺简单的,完全使用目录结构还有package名来推导工程结构和构建顺序。 当然,首先要说的是环境变量$GOPATH,项目构建全靠它。这么说吧,想要构建一个项目,就要将这个项目添加到$GOPATH中,多个项目用";"分隔。 Golang项目目录下一般有三个子目录: src存放源代码 pkg编译后生成的文件 bin编译后生成的可执行文件 我们重点要关注的其实就是src文件夹中的目录结构。 举个例子比啥都强,目录结构如下: |-- |-- |-- |--al.go |-- |--a2.go |-- |--b1.go |--b2.go |-- |--c.go |-- |-- 各文件代码: a1...阅读全文

Go中使用动态库C/C++库

最近需要做一些在go中使用动态C++库的工作,经常碰到找不到动态库路径这种情况,所以就花点时间,专门做一下实验来了解Go。 一、示例代码目录结构(假设代码根目录为/home/gdc/cgotest): ----|bin: ----|pkg ----|src --------|main ------------|main.go --------|oidb ------------|hello ----------------|hello.go: ----------------|api.h ------------|lib ----------------|libapi.so 二、代码 api.h文件内容: #ifndef __API_H__ #define __API_H__ void he...阅读全文

博文 2014-10-16 11:00:11 xiaogugood

golang 建临时文件目录以及删除

package main import ( "fmt" "os" "path/filepath" "strings" ) func destorytemp(path string) { filepath.Walk(path, func(path string, fi os.FileInfo, err error) error { if nil == fi { return err } if !fi.IsDir() { return nil } name := fi.Name() if strings.Contains(name, "temp") { fmt.Println("temp file name:", path) err := os.RemoveAll(path) if err !=...阅读全文

博文 2015-04-07 03:00:05 rojas

golang mysql中timestamp,datetime,int类型的区别与优劣

golang time: https://golang.org/pkg/time/ golang中time包用法 http://blog.csdn.net/chenbaoke/article/details/41519193 首先 DATETIM和TIMESTAMP类型所占的存储空间不同,前者8个字节,后者4个字节,这样造成的后果是两者能表示的时间范围不同。前者范围为1000-01-01 00:00:00 ~ 9999-12-31 23:59:59,后者范围为1970-01-01 08:00:01到2038-01-19 11:14:07。所以可以看到TIMESTAMP支持的范围比DATATIME要小,容易出现超出的情况. 其次,TIMESTAMP类型在默认情况下,insert、update ...阅读全文

博文 2016-03-04 08:00:01 scut1135

go语言遍历目录中的文件

package main import ( "fmt" "io/ioutil" "os" // "path/filepath" // "strings" ) var ( files []string ) //获取指定目录下的所有文件和目录 func ListDir(dirPth string) ( err error) { //fmt.Println(dirPth) dir, err := ioutil.ReadDir(dirPth) if err != nil { return err } PthSep := string(os.PathSeparator) // suffix = strings.ToUpper(suffix) //忽略后缀匹配的大小写 for _, fi := rang...阅读全文

博文 2015-12-22 10:00:04 woquNOKIA

Golang 项目目录结构组织

其实golang的工程管理还是挺简单的,完全使用目录结构还有package名来推导工程结构和构建顺序。 当然,首先要说的是环境变量GOPATH,项目构建全靠它。这么说吧,想要构建一个项目,就要将这个项目添加到GOPATH中,多个项目用";"分隔。 Golang项目目录下一般有三个子目录: src存放源代码 pkg编译后生成的文件 bin编译后生成的可执行文件 我们重点要关注的其实就是src文件夹中的目录结构。 举个例子比啥都强,目录结构如下: |-- |-- |-- |--al.go |-- |--a2.go |-- |--b1.go |--b2.go |-- |--c.go |-- |-- 各文件代码: a1.g...阅读全文

博文 2019-04-28 01:34:41 藍墨雪姫

Go语言(log4go介绍)

今天来介绍一个Go语言中常用的日志第三方包,即log4go。在C++中,有log4cpp,而在Java中,有log4j。 好了,废话不多说,现在就来介绍log4go的使用。在log4go在github上的链接如下 链接:https://github.com/skoo87/log4go 具体用法可以参考examples文件夹,而且配置文件采用JSON的格式。一个典型的例子如下 log.json: { "LogLevel" : "info", "FileWriter" : { "LogPath" : "log-%Y%M%D.log", "On": true }, "ConsoleWriter" : { "On" : true } } main.go: package main import ( ...阅读全文

博文 2015-06-17 23:01:52 ACHelloWorld

说一说go mod

[toc] 说一说go mod 写在前面,我们要切换到go mod吗 go mod是官方力推的go模块依赖管理的工具,有官方的背书,肯定是要用的。go1.13已经默认支持了,所以迟早要切到go mod, 势不可挡。 go mod什么 go mod能管理的依赖包的版本,能保证在不同地方构建,获得的依赖模块是一致的。 没有go mod之前如何管理包依赖 没有go mod之前,有go deps, vendor等方法来解决。 go mod如何工作 go 1.11通过设置环境变量GO111MODULE来决定是否启用 export GO111MODULE=off #关闭go mod export GO111MODULE=on # 开启mod export GO111MODULE=auto # GOPAT...阅读全文

博文 2019-10-19 01:32:43 aside section ._1OhGeD

Protobuf 的 import 功能在 Go 项目中的实践

业务场景 我们会有这样的需求:在不同的文件夹中定义了不同的 proto 文件,这些不同的文件夹可能是一些不同的 gRPC 服务。因为不想重复定义某一个 message,所以其中一个服务可能会用到其他服务中定义的 message,那么这个时候就需要使用到 proto 文件的 import 功能。 接下来说说我在 Go 项目中使用 protobuf 的 import 时所遇到的坑。 案例 首先,我们来创建一个实验项目作为案例,便以说明,结构如下: 文件 go.mod 中声明了该项目模块名 module github.com/xvrzhao/pb-demo,proto 文件夹中含有两个 gRPC 服务,分别为 article 和 user,我们在这两个文件夹中定义各自所需要的 messages 和...阅读全文

博文 2019-12-31 19:32:38 Xavier

iOS和Android的开发库 Gomobile

Gomobile是一个应用于iOS和Android的优秀跨平台开发库,为开发者提供用于创建Android和iOS 移动平台代码的工具。 ### 环境设置 我们需要Go 1.5及以上版本(版本越高越好)。  然后,我们需要安装Gomobile:

go get golang.org/x/mobile/cmd/gomobile
注:该命令可能需要几分钟的时间。 至于构建Java代码,你则需要Android SDK,并安装Java(OpenJDK就够了)。 [下载](https://developer.android.com/sdk/index.html#...阅读全文

开源项目 2016-03-15 16:00:00 golang

Install go1.5 for CentOS7

https://golang.org/doc/install 下载好后,通过FTPS,传递到Linux里去,放哪里随便你自己,因为被墙了,所以在Windows通过旋风下载了这个玩意儿。 你也可以: wget https://storage.googleapis.com/golang/go1.5.linux-amd64.tar.gz //将go解压到/opt,个人喜好罢了 [root@localhost ~]# tar -C /opt -xzf ./go1.5.linux-amd64.tar.gz /*在末尾增加一下两行, GOPATH是工作目录, GOROOT表示指出go的根目录位置 ps:在自定义程序的安装位置后,需要设置这个 export GOROOT=/opt/go export PA...阅读全文

博文 2015-08-29 03:00:00 rootarvin

golang创建文件目录os.Mkdir、os.MkdirAll区别

本文主要讲述os.Mkdir、os.MkdirAll区别以及在创建文件目录过程中的一些其他技巧。 os.Mkdir("abc", os.ModePerm) //创建目录 os.MkdirAll("dir1/dir2/dir3", os.ModePerm) //创建多级目录 首先,试图从一个Go可执行文件创建一组嵌套目录(如’dir1/dir2/dir3’),并打印错误出来看看。 err:=os.Mkdir(“dir1/dir2/dir3”,os.ModePerm) if err!=nil{ fmt.Println(err) } result:mkdir ./dir1/dir2/dir3: The system cannot find the path specified. Mkdir 用于创...阅读全文

博文 2019-02-24 19:34:42 不屈真实

go语言-使用swig转化C++代码为go所用

服务端的某个项目,要考虑到性能问题,之前使用基于公司框架的php,性能有瓶颈,经过调研,决定使用go。因为之前有一个关键模块已经使用c++实现,所以计划使用go做HTTP容器,让go和c++模块结合起来。 在网上调研结合方案,go自带的cgo只支持c语言,swig工具可以支持多种语言结合c++,所以决定使用swig,这里简要叙述下swig的使用和一些发现的要点。 1. 我们解压了swig后,首先要根目录运行configure和make,这样会生成各个子目录的makefile,并在当前目录生成preinst-swig.in和swig可执行文件,这些在后续会拥有。 2. 我们进入Example的go里面,这里有一些值得参考的例子 3. 研究那个class例子,有这几个文件: class.cxx和...阅读全文

博文 2015-06-17 23:01:50 linux4fun

Mac+Sublime+Golang 环境配置所学

关于环境变量: GOPATH是一个路径列表,类似于PATH的设置: GOPATH=/home/USER/go:/home/USER/workspace_go:***在你建好工作空间后,即可开始配置GOPATH了(配置文件是~/.bash_profile)。export GOPATH=/Users/用户名/go:/Users/用户名/Documents/workspace/workspace_go在mac下设置环境变量: 1,打开 应用程序 -> 实用工具 -> 终端;2,在终端中定位到自己用户的主目录,输入: cd ~ ;3,创建一个空文件,输入:touch .bash_profile ;4,编辑这个文件,输入:open .bash_profile ;5,在这个文件中输入:export PA...阅读全文

博文 2014-10-09 16:00:01 guidovanrossum

golang 获取当前路径和上一级父路径(目录)

直接贴代码: package main import ( "fmt" "log" "os" "path/filepath" "strings" ) func substr(s string, pos, length int) string { runes := []rune(s) l := pos + length if l > len(runes) { l = len(runes) } return string(runes[pos:l]) } func getParentDirectory(dirctory string) string { return substr(dirctory, 0, strings.LastIndex(dirctory, "/")) } func getCur...阅读全文

博文 2016-11-06 14:00:01 Manrener

go语言scan空值报错

http://xmarker.blog.163.com/blog/static/22648405720144743531420/ 今天使用go语言时,如果数据库里有空值,扫描出来报错,其中环境是这样的,数据库为postgresql9.3.2(其实和数据库无关),数据库里的数据如下: db_public=> \d t_tmp Table "usr_public.t_tmp" Column | Type | Modifiers --------+-----------------------------+----------- id | integer | not null name | character varying(30) | remark | text | time | timesta...阅读全文

博文 2016-04-19 18:00:01 leonpengweicn

Go http.StripPrefix在File Server中的用途

一. 保持代码的整洁和进行合理的分流 http.StripPrefix函数的作用之一,就是在将请求定向到你通过参数指定的请求处理处之前,将特定的prefix从URL中过滤出去。下面是一个浏览器或HTTP客户端请求资源的例子: /static/example.txt StripPrefix 函数将会过滤掉/static/,并将修改过的请求定向到http.FileServer所返回的Handler中去,因此请求的资源将会是: /example.txt http.FileServer 返回的Handler将会进行查找,并将与文件夹或文件系统有关的内容以参数的形式返回给你(在这里你将"static"作为静态文件的根目录)。因为你的"example.txt"文件在静态目录中,你必须定义一个相对路径去获...阅读全文

博文 2016-12-23 10:00:01 吃一堑消化不良

Windows 平台安装配置Golang语言环境

环境介绍: OS: Windows 7 sp1 Arch:x86_64 Golang Ver:Go 1.4.2 amd64 1、下载Golang语言安装包: Go 由Google于2009年开发释出,一种开放源代码的语言。github: golang/go。可以直接在这上面找到释出的源代码(其实也只是供源代码下载,没有做成安装包),将源代码编译即可使用。也可以找到Go的中文论坛:http://www.golangtc.com/,在这里可以找到Go的windows安装包(.msc)。 这里我使用了Go 1.4.2版本,下载路径:http://www.golangtc.com/download 2、在windows下安装Golang: 下载到.msc安装包后,双击安装即可,傻瓜式安装。 3、配置...阅读全文

博文 2015-12-08 20:00:01 u012842205

golang语法总结(八):类型零值、类型别名、类型转换

类型零值 变量声明为某种类型后的值就为该类型的零值,它不是空值。通常数值类型默认为0,bool为false,string为空字符串 类型别名 比如: type text stringfunc main() { var t text = "hello world" fmt.Println(t)} 类型转换 Go语言不存在隐式转换,必须显式转换,并且只能在两种相互兼容的类型间转换,转换示例: a := 3.14b := int(a)fmt.Println(b)var c int32 = 256var d = float64(c)fmt.Println(d...阅读全文

博文 2016-02-22 14:00:07 QQ245671051

使用 IntelliJ IDEA 搭建go语言开发环境,亲测可用

1 安装版本 go1.5 2 下载sdk : 下载地址:http://golangtc.com/download 3 按照提示安装即可 ,放置于D:/Go 目录下 4 下载安装intellj IDEA , 地址:http://www.jetbrains.com/idea/ 5 按照提示安装intellj Idea 6 配置IDEA 的go插件 一种是直接在settings->plugins->intsall jetBrains plugins ->搜索golang ;但是我没有搜到,网上有的说用编译go-lang-plugin 的源码得到jar ,但是我的编译总是出现问题,放弃 我是这样的:我从网上 vcs->check out from version control -> docker ...阅读全文

博文 2015-11-25 22:00:02 rually

beego上传文件

html代码:

<input id="myfile" name="myfile" type="file" /> <input type="submit" value="保存" />
beego代码: func (this *ServiceController) Upload() { f, h, _ := this.GetFile("myfile") //获取上传的文件 path := SDPATH + h.Filename //文件目录 f.Close() //关闭上传的文件,不然的话会出现临时文件不能清除的情况 this.SaveToFile("myf...阅读全文

博文 2016-04-16 03:00:03 vipstone

sqlite3安装问题

我按照[http://my.oschina.net/Obahua/blog/129689][1] [1]: http://my.oschina.net/Obahua/blog/129689 上的说明下载sqlite-dll-win32-x86-3080200.zip解压到system32文件夹中,然后安装TMD 版的 GCC 编译器tdm-gcc-4.8.1-3.exe在c盘根目录,路径也设置好,最后go get github.com/mattn/go-sqlite3,这是出现错误cc1.exe: error: unrecognized command line option "-fno-stack-protector",运行下实例也是出现这个错误,这是怎么回事啊?请大神帮忙...阅读全文

Notepad++配置Go语言语法高亮

前提是已经安装并配置好了Go语言环境,这里不再赘述。 1.Go语言支持包 如果在Go安装目录中misc文件夹中有notepadplus文件夹,其中有userDefineLang_Go.xml(网上有的写是userDefineLang.xml,我没有见到)这个文件,则直接使用,没有的话就从下面这个地址下载。下载到后,解压会得到两个xml,一个是userDefineLang_Go.xml,一个是go.xml。 http://notepad-plus.sourceforge.net/commun/userDefinedLang/go.zip 2.配置Notepad++ 1).打开userDefineLang_Go.xml,把文件开头和结尾的注释...阅读全文

博文 2015-06-17 23:00:28 change_from_now

go语言Makefile

一般通用形式 include $(GOROOT)/src/Make.$(GOARCH) TARG=mypackage GOFILES=/ my1.go/ my2.go/ include $(GOROOT)/src/Make.pkg 其中GOROOT和GOARCH为环境变量,分别表示go的安装根目录和本机的体系结构 我的设置是 export GOROOT=$HOME/go export GOARCH=386 export GOOS=linux TARG是目标文件 GOFILES是源代码文件列表 如果生成的文件不是lib,是可执行文件,则将上面最后一行中的Make.pkg换成Make.cm...阅读全文

博文 2015-06-17 23:05:44 dux003

ubuntu16.04安装指定版本的Go环境

此教程是为了安装hyperledger fabric的go语言环境。 fabric1.4要求的go语言版本为1.11.x 1. 从Go的下载页面上找到适合于ubuntu16.04版本的安装包 安装包下载地址为:https://golang.org/dl/。 如果打不开可以使用这个地址:https://golang.google.cn/dl/。 在以下列表中,选择go1.11.5.linux-amd64.tar.gz下载 图片.png 在~/下载 目录中,下载该文件 $ wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz 2. 安装Go 下载完成后,解压该文件到/usr/local $ sudo tar -zxvf go1.11....阅读全文

博文 2019-03-10 16:34:40 菜菜不太菜

一个简单的golang游戏服务器框架

这个是框架的架构图 ![架构图.jpg](http://studygolang.qiniudn.com/161126/bbd98d6b8e74230dcb518caad9caadc1.jpg) 单个APP的结构 ![单个app结构.jpg](http://studygolang.qiniudn.com/161126/f7a78528c9c94f63c0513fd5e3336b74.jpg) 报文协议层级 ![报文层级.jpg](http://studygolang.qiniudn.com/161126/2fcbc73d2e2926e09941bd18403103da.jpg) 文档的目录索引的链接:http://blog.csdn.net/easy_m...阅读全文

Deepin下搭建Golang开发环境

首先下载golang包,下载地址:http://pan.baidu.com/s/1hq1mrDM 进入go文件夹,然后进入对应的版本号,如果您的系统是32位的就是go1.4.2.linux-386.tar.gz,64位是go1.4.2.linux-amd64.tar.gz,下载好了后,解压得到go文件夹,我们使用命令移动到系统目录:sudo mv go /usr/local/输入管理员密码,什么都没有提示就是成功了,然后修改profile文件,命令是sudo gedit /etc/profile,然后在末尾添加以下代码: export GOROOT=/usr/local/go export GOARCH=amd64 export GOOS=linux export GOPATH=/home/...阅读全文

博文 2015-06-17 20:05:15 Rekols

Go数据结构之集合

一、什么是集合集合就是不同对象的无序聚集。那么链表和集合有什么关系呢?我们来变个魔术。如下图是各种颜色组成的链表:​下面我们一步步把链表变成集合。第一步砍去链接​第二步去掉重复​第三步放到一个框里摇一摇就成集合了​可以看出集合有这些特点:无序:链表去掉链接,就是去掉元素间有序状态。不重复:去掉重复的玫红色。虽然说集合是一种数学概念,但在实际生活中无处不透露着集合。比如一个班级的学生是一个集合。班级里的男生又是一个集合。二、集合的结构​大卫哥这里为了简化概念的描述,继续用单链表来表示集合,但是在对集合做计算的时候单链表并不合适,数据量大的时候它的弊端就会显现,在讲到后面的数据结构和算法的时候,我们再回头来完善前面讲的数据接口的实现。三、接口说明及实现​2、Init初始化集合,本质是初始化链表。...阅读全文

博文 2017-12-09 01:29:48 rhan-zz

通过搭建wordpress博客来学习云服务器的详细使用方法

云服务器越来越普及,很多企业及个人都纷纷上云,从传统的虚拟主机或者托管服务器上把网站和应用迁移到腾讯云、阿里云、百度云等这些云服务器上。云服务器相比传统服务器的优势有很多,比如安全性、性价比、稳定性、可用性、便捷性等等各方面,大家可以百度自己了解,我就不在这里多说了。虽然云服务器就这么多的优点,但真正会用,能用好的站长朋友们还不是很多,今天,就由提供阿里云、腾讯云1折秒杀活动的“尊托云数-9i0i.com”带着新手站长们,来通过搭建wordpress博客来学习云服务器的详细使用方法:首先,我们从云服务器的选购开始,建议选择的云服务商:阿里云、腾讯云、华为云、百度云,因为这些大的品牌能让你免除后顾之忧,持续经营你的网站,如下图:在选购云服务器时,有区域、CPU、内存、带宽、系统镜像这几个要素需...阅读全文

golang中的http.FileServer通常要跟http.StripPrefix结合使用

用go写一个文件服务器很简单: http.handle(“/”, http.FileServer(http.Dir(“doc”)) http.ListenAndServe(":8888”, nil) 打来localhost:8888,就能看到doc目录下的所有文件。 但如果,你想用localhost:8888/doc来显示进入文件目录,则需要 http.Handle(“/doc", http.StripPrefix(“/doc", http.FileServer(http.Dir(“doc")))) http.StripPrefix用于过滤request,参数里的handler的request过滤掉特定的前序,只有这样,才能正确显示文件目录...阅读全文

博文 2015-06-17 20:18:48 u011649436

godep的save和update

godep save ./... 把依赖的包从GOPATH里找到,然后固化到当前目录Godeps目录里. 但是它不分版本:如果GOPATH里某个包升级了,godep save不会把它更新到Godeps里(假设Godeps里已有)。 godep update google.golang.org/grpc/... 把依赖的grpc包固化到当前目录Godeps目录里,用GOPATH里当前的版本...阅读全文

博文 2015-11-05 03:00:02 xiaouisme

golang 多个项目时如何配置(使用gb在非GOPATH路径下构建项目)

方案1:将每个项目路径写入GOPATH 写了个脚本SetGoPath.sh #!/bin/bash if [[ $GOPATH =~ .*$PWD.* ]] then echo "currnet dir is already in GOPATH" else export GOPATH=$GOPATH:$PWD echo "fininsh setting $PWD in GOPATH" fi 在项目主目录中运行source SetGoPath.sh 将当期项目路径写入GOPATH 方案2 使用gb替代go来构建项目 这个gb就是一个替代go的build 和 test的工具,可以让项目在任意路径时运行构建 github地址:https://github.com/constabula... 首先要...阅读全文

博文 2017-03-16 10:00:54 kel

go语言http服务处理image/css/js等静态文件

go语言实现http服务器时如果处理静态文件,需要用到http.ServeFile: func ServeFile(w ResponseWriter, r *Request, name string) { dir, file := filepath.Split(name) serveFile(w, r, Dir(dir), file, false)} 首先根据请求路径r.URL.Path判断是否包含静态文件目录,如果存在则直接返回: img_dir := "/home/qinpeng" if strings.HasPrefix(r.URL.Path,"/img"){ file := img_dir + r.URL.Path[len("/img"):] f,err := os.Open(fil...阅读全文

[golang把文件复制到另一个目录]

//本程序 主要功能是把A文件夹下的文件与B目录下文件对比,如果找到就覆盖到B相应的目录下。 // 用法: merge A目录 B目录 // merge.go package main import ( "flag" "fmt" "os" "path/filepath" "strings" "time" "github.com/Unknwon/com" ) const ( IsDirectory = iota IsRegular IsSymlink ) type sysFile struct { fType int fName string fLink string fSize int64 fMtime time.Time fPerm os.FileMode } type F struct ...阅读全文

博文 2016-09-07 12:00:02 zistxym

代码片段 - Golang 实现集合操作

package main import ( "fmt" "sort" "sync" ) type Set struct { sync.RWMutex m map[int]bool } // 新建集合对象 func New(items ...int) *Set { s := &Set{ m: make(map[int]bool, len(items)), } s.Add(items...) return s } // 添加元素 func (s *Set) Add(items ...int) { s.Lock() defer s.Unlock() for _, v := range items { s.m[v] = true } } // 删除元素 func (s *Set) Remove(it...阅读全文

博文 2016-09-04 14:00:00 golove

gorm中的公共方法判断reflect.Value的值是否为空值

``` func isBlank(value reflect.Value) bool { switch value.Kind() { case reflect.String: return value.Len() == 0 case reflect.Bool: return !value.Bool() case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64: return value.Int() == 0 case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr...阅读全文

博文 2017-12-23 10:48:19 fightingforbing

空中金融可靠吗?投资理财选空中金融可以吗?

  对于关注投资理财的朋友来说,互联网金融理财肯定是一种非常不错的模式。这种理财模式起点低、收益高,因而很受年轻人的青睐。不过,市面上的互联网金融理财平台非常多,我们该如何选择呢?最近比较出名的空中金融可靠吗https://www.kongzhongjr.com/?投资理财选空中金融可以吗?   空中金融可靠吗?投资理财选空中金融可以吗?空中金融是空中网针对当下日益增长的互联网金融业务需求,结合自身多领域跨界大战略而打造的综合金融服务平台。依托空中网作为上市公司的有力背书以及完善强大的资产管理能力,目前已迅速崛起成为新一代互联网金融平台中的翘楚。所以,空中金融还是值得推荐的。   空中金融可靠吗?空中金融可不可靠,与其风控措施密切相关。空中金融PEM复合风控系统在市面上很出名。根...阅读全文