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

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

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

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

Go语言实现set

set : package set type Set interface { Add(e interface{}) bool Remove(e interface{}) Clear() Contains(e interface{}) bool Len() int Same(other Set) bool Elements() []interface{} String() string } // 判断集合 one 是否是集合 other 的超集 func IsSuperset(one Set, other Set) bool { if one == nil || other == nil { return false } oneLen := one.Len() otherLen := othe...阅读全文

博文 2015-01-25 20:00:12 itfanr

Go数据结构之集合

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

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

Go如何处理zip中的中文文件名

Go的标准库已经自带了zip的库. 不过zip包在处理内部文件名时, 默认是utf8编码的. 对于Windows中文用户, 生成和读取zip内部文件名默认是GBK编码的. 因此, 在处理涉及GBK的文件名时需要做一个转换. Go语言官方的 go.text 子标准库已经支持各种编码, 下面是utf8转GBK的函数: import "golang.org/x/text/encoding/simplifiedchinese" func utf8ToGBK(text string) (string, error) { dst := make([]byte, len(text)*2) tr := simplifiedchinese.GB18030.NewEncoder() nDst, _, err :...阅读全文

博文 2015-05-18 12:38:08 chai2010

代码片段 - 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

beego controller响应json时如何忽略空值

beego controller响应json时如何忽略空值:如 ``` { "Id": 0, "Account": "admin", "Password": "", "RoleId": 0, "Status": "", "CreateTime": "0001-01-01T00:00:00Z", "CreateUserId": 0, "UpdateTime": "0001-01-01T00:00:00Z", "UpdateUserId": 0 } ``` 零值数据不返回 只返回 `{“Account”:"admin"}` 代码: ``` func (this *AdminManageController) GetCurrentSysAdm...阅读全文

刚来注册就发现一个bug

在注册用户名已经存在时,提交出现这样一个神奇的bug:填写一个已经存在的用户名,然后提交,用firebug看到:POST数据给:http://studygolang.com/account/register.json ,这个地址返回的是: {"errno": 1, "error":""} 返回的JSON格式里 error是空字符,应该提示:“用户名已存在!”, 希望尽快修正...阅读全文

如何使用Python删除文件、目录

在进行Python项目实战(http://www.maiziedu.com/course/python/)时,会经常使用到Python删除文件、删除目录等操作方法,今天小编详细的分析了涉及Python文件操作的各种方法,需要的朋友可以参考下 下面来看一下python里面是如何删除一个文件及文件夹的~~ 首先引入OS模块 import os 删除文件: os.remove() 删除空目录: os.rmdir() 递归删除空目录: os.removedirs() 递归删除目录和文件(类似DOS命令DeleteTree): 方法1: # Delete everything reachable from the directory named in 'top', #...阅读全文

用go语言和org-mode搭建自己的博客环境

2012-12-23 用go语言和org-mode搭建自己的博客环境 设计目标 操作流程 目录格式 博文头部meta格式 功能实现 设计目标 半静态的博客。尽量是self-contain的,没有数据库依赖。只要完全基本功能。使用博文头部有元信息来分类别,tag等,go语言后台动态生成按类别浏览。 静态部分包括: css样式文件 各种显示的模板 大多数博文都是由org文件使用emacs生成的html 动态部分包括: 由go语言程序生成rss的feed 管理博文的分类,tag,等 评论等功能后期再考虑 操作流程 手写org格式的博文。文件格式有特殊头部存储博文json格式的meta信息。然后用emacs加工,将org文件转化为html导入到pub/post目录,只生成body部分。 go语言写后...阅读全文

博文 2015-03-16 11:50:39 zenlife

Java、Php、Python、Flash、C++、Go、Flash开发工具大集合!!!

[@2014-1-4] 记录一下自己的脚印:今天下载了《Java、Php、Python、Flash、C++、Go、Flash开发工具大集合!!!》觉得不错,推荐一下,有需要的同学欢也可以下载一下。下载地址:http://www.xiaomengku.com/topic?id=509这里还有跟“电子图书”相关的其它分享,可以点击:http://www.xiaomengku.com/tsearch/ebook查看更多内容...阅读全文

博文 2015-06-11 10:00:00 it-world

go map的使用

欢迎关注go语言微信公众号 每日go语言 golang_everyday go中map用于存储健值对。map格式: map[KeyType]ValueType 声明一个map,键为字符型,值为int型: m := make(map[string]int) map中添加值: m["a"] = 1 获取map中值: fmt.Println(m["a"]) 输出结果:1 获取值同时判断是否存在该值 v,exists := m["a"] fmt.Printf("%d %t",v,exists) 输出: 1 true 遍历map for key, value := range m { fmt.Println("Key:", key, "Value:", value) } 输出: Key: a Valu...阅读全文

博文 2015-05-19 03:00:11 baiyuxiong

用go语言和org-mode搭建自己的博客环境

2012-12-23 用go语言和org-mode搭建自己的博客环境 设计目标 半静态的博客。 尽量是self-contain的,没有数据库依赖。只要完全基本功能。 使用博文头部有元信息来分类别,tag等,go语言后台动态生成按类别浏览。 静态部分包括: css样式文件 各种显示的模板 大多数博文都是由org文件使用emacs生成的html 动态部分包括: 由go语言程序生成rss的feed 管理博文的分类,tag,等 评论等功能后期再考虑 操作流程 手写org格式的博文。文件格式有特殊头部存储博文json格式的meta信息。 然后用emacs加工,将org文件转化为html导入到pub/post目录,只生成body部分。 go语言写后台,将pub/post目录的文件结合template/p...阅读全文

博文 2015-03-16 11:49:36 zenlife

Golang 中的 面向对象: 方法, 类, 方法继承, 接口, 多态的简单描述与实现

前言: Golang 相似与C语言, 基础语法与C基本一致,除了广受争议的 左花括号 必须与代码同行的问题, 别的基本差不多; 学会了C, 基本上万变不离其宗, 现在的高级语言身上都能看到C的影子; Golang 中的 面向对象 什么是面向对象? 面向对象是一种编程思想, 并不是某一种开发语言独属; 那什么是对象? 对象,指的是客体。所谓客体是指客观存在的对象实体和主观抽象的概念。(扩展阅读) 简单理解就是, 抽象一个拥有多重属性的客体, 将共有属性抽离出来为一个类, 以便实现定义多个客体的功能。 面向对象有哪些特征? 面向对象 通常包括三个特征 继承, 封装 和 多态; (简单理解) 继承: 由子类继承父类的属性/数据/方法等; 封装: 以最简单的函数形式将方法展示出去, 而不需要使用者知...阅读全文

博文 2018-07-21 00:30:02 gettolive

go语言学习心得

目的 在新单位工作已经快1年,这边使用了go语言作为主要的开发语言。在这里记录在工作中使用该语言遇到的问题、心得,避免以后再踩坑。 各种例子 1、从一个map对象中根据key获取值。其中map的通用类型可以定义为:map[string]interface{} 前提条件存在一个上述类型的map定义 var m map[string]interface{} = make(map[string]interface{}) 可以有两种方式来获取对象 (1). 方法一 value, ok := m[key] (2). 方法二 value := m[key] 问题:value的类型为interface{},可以为值类型或指针类型,如果给定的key在map中不存在,对于不同value类型的结果会是怎样的? ...阅读全文

博文 2016-03-25 23:00:01 lingyun1981

golang项目结构

一、概述 golang更新了环境变量,导致整个goproject的结构改变: 1 [root@node175 goproject]# tree -L 2 2 . 3 ├── bin 4 │ └── demo 5 ├── pkg 6 │ └── linux_amd64 7 └── src 8 ├── demo 9 10 5 directories, 1 file 11 12 项目源码在src下,可以包含多个project: demo1, demo2 等等 13 此时bin, pkg均为空目录; 14 cd src && go install demo 15 #此时, 生成了demo项目的lib文件在如下目录中 16 [root@node175 src]# ll ../pkg/linux_amd...阅读全文

博文 2017-09-26 18:30:01 chris-cp

golang语法总结(四):基本数据类型

整型有:int8/uint8、int16/uint16、int32/uint32、int64/uint64、int/uint、byte、rune 1) 数字表示占多少位,uint的u表示unsigned,有点C语言基础的都知道是什么意思,这里就不赘述了; 2) int/uint会根据运行平台可能为32位或64位; 3) rune相当于int32的别名 4) byte相当于uint8的别名 浮点型有:float32、float64 float64相当于其它某些语言的double,即双精度浮点型 字符串:string 布尔型:bool 只有true或false,不能用数字代替(比如C语言就允许0代表false,非0代表true) 空值:nil 有些语言是null或NUL...阅读全文

博文 2016-02-25 10:00:01 QQ245671051

go package列表泛型包

# package slicelement Go library for finding element in slice type or operating set including union, interaction and difference. not only it supports the buildin types which includes `[]int/[]*int`, `[]float/[]*float`, `[]string/[]*string`, but also it supports `[]struct/[]*struct` . The latter is very important and convenient ## Installati...阅读全文

【原创】树莓派3B开发Go语言(四)-自写库实现pwm输出

在前一小节中介绍了点亮第一个LED灯,这里我们准备进阶尝试下,输出第一段PWM波形。(PWM也就是脉宽调制,一种可调占空比的技术,得到的效果就是:如果用示波器测量引脚会发现有方波输出,而且高电平、低电平的时间是可调的。) 这里爪爪熊准备写成一个golang的库,并开源到github上,后续更新将直接更新到github中,如果你有兴趣可以简书和我联系。 github.com/dpawsbear/bear_rpi_go 一、树莓派的PWM 我在很多的教程中都看到说树莓派的PWM(硬件)只有一个GPIO能够输出,就是 GPIO1。这可是不小的打击,因为我想使用至少四个 PWM ,还是不死心,想通过硬件手册上找寻蛛丝马迹,看看究竟怎么回事。 手册上找寻东西稍等下讲述,这里先提供一种方法测试 树莓派3...阅读全文

博文 2017-08-31 14:05:03 爪爪熊大坏蛋

Win 7 下一种IE首页恶意篡改的解决(go2000.com/?XX)

笔者前些日子因没有注意,在安装软件时被其捆绑的流氓软件将IE主页恶意篡改了http://go2000.com/?52。在IE属性里设回about:blank(空白页)后,下次启动又被自动篡改。检查注册表发现HKEY_CURRENT_USER/Software/Microsoft/Internet Explorer/Main中的Start Page项被改成了http://go2000.com/?52,更改键值提示没有权限,更改Main的权限控制提示拒绝访问。Win7 优化大师强行锁定首页为about:blank,但注册表中的键值始终无法改变。 今天终于研究出一种方法可以修复此问题,特此分享: 1、以管理员身份运行注册表编辑器regedit。 2、检查HKEY_CURRENT_USER/Soft...阅读全文

博文 2016-02-08 23:00:01 qianyun6

golang template模版如何判断变量是否存在/指针是否为空

golang template模版如何判断变量是否存在/指针是否为空 也就是语法{{if .Var}}的含义。 其含义是变量Var是否为真值,判断逻辑根据变量的类型,和golang语言本身判断变量是否为真的逻辑是一样的。 数字型:值不等于零 字符串:不是空串 指针类型:不为空 布尔类型:为True值 比较常用的是指针类型是否为空(对于其他基本类型来说,可以通过简单的比较运算来完成),语义上说就是属性是否存在,举个例子来说: package main import ( "os" "log" "text/template" ) type Address struct { City string Street string Apt int } func main() { templateText ...阅读全文

博文 2020-01-06 05:32:43 CodingCode

Golang最最最基础语法

这一节看下Golang的基础语法...嘛...如果懒得看的话,记得以下两点就好: 1 Golang的变量、函数参数等等涉及到类型的声明,都是变量名写在前,类型写在后的(和正统C系语法刚好相反) 2 循环语句for通吃所有 然后,就开始啦~ Go语言基本语法 package main import ( "fmt" ) func main() { fmt.Println("Hello Azen٩(●˙▿˙●)۶…⋆ฺ") } 作用:使用fmt这个库运行输出 定义变量 var 关键字 func variableZeroValueDefine() { var a int var s string fmt.Printf("%d %q\n", a, s) } 知识点: 变量名写在前面,变量类型写在后面 ...阅读全文

博文 2018-07-11 20:34:42 Azen

【Go语言】【5】GO语言变量

变量也是语言的基本元素,与GO语言的常量类似,常量使用const关键字修饰,而变量使用var关键字修饰,变量声明的形式为var variableName variableType一、变量声明var age intvar phone intvar name stringvar address stringvar salary float64var consume float64var array [10]intvar frieds [20]string每个变量声明都使用一个var,上面的例子中能否能减少var的个数吗?前面说过GO是最懂程序员的,所以当然可以简写为:var ( age int phone int name string address string salary float64...阅读全文

博文 2017-02-09 15:58:07 qingkechina

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

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

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

价值超5万的撮合引擎:开篇

前言 自从有人在微信群里开价5万求购Golang版的撮合引擎之后,我就想自己开发一款,毕竟,以我的经验来说,开发个高性能的撮合引擎并没什么难度。 说干就干,于是,利用业余时间慢慢开发出了一款Golang版的高性能撮合引擎,前前后后花了大概一个月的时间。再想想自己好久没更新文章了,我的个人IP都已经生锈了,也应该发大招磨一磨了。因此决定,干脆就以连载的方式,分享下我是如何设计与实现这款价值超5万的撮合引擎的。 本来,想发成掘金小册,收点稿费,毕竟这是个具有很大商业价值的软件,但问了掘金的人员,他们目前不接收这类主题。最终决定免费发布,还可以多发几个渠道,说不定还能给我多带来些关注量。 好了,下面开始进入撮合引擎系列的正题。 撮合引擎简介 撮合引擎是所有撮合交易系统的核心组件,不管是股票交易系统...阅读全文

golang中使用proto3协议导致的空值字段不显示的问题处理方案

最近在使用grpc协议的时候,由于采用的是Proto3协议,在查找记录信息的时候,由于某些字段会有默认空值,导致在通过协议调用后,返回的json结构中并没有这些字段,虽然作为前端使用没有太大的问题,但是在更多的使用场景中,我们更需要知道该服务返回的确切字段,以便于能够做相应处理,尤其是编译型语言 具体的使用出现场景如下 type MemberResponse struct { Id int32 `json "id"` Phone string `json "phone"` Age int8 `json "age"` } //获取用户信息的接口 func (m *Member) GetMember(req *proto.MemberRequest, resp * proto.MemberRes...阅读全文

博文 2019-10-16 11:02:43 Dal_Zale

GO语言基础(一)2019-05-08

结束了第一章的学习,正式开始go语言的学习。我决定先去吃个午饭.下午两点十七分继续开始学习P31-P35:变量-变量需要声明(类C)注意事项:1、三种使用方式:(1)声明后不赋值则使用默认值。(int为0)(2)类型推导(类python)(3)省略var 用例如name:="tom"的方式,其中name不应该被声明过,:不能省略2、多变量声明与1相对应P36:数据类型简介 数据类型 P37-38:%T 变量类型 unsafe.Sizeof()变量的大小P39-P40:浮点型变量-golang的优势在于不依赖于操作系统,直接将数据的大小与内存大小相对应。P41-P42: 字符类型golang中字符用byte(int型的一种)来存储,可以理解为golang中没有字节类型,所以直接输出字符值,会现...阅读全文

博文 2019-05-09 03:34:56 竖琴犹奏相思苦

入门:基础语法(一)变量的定义使用

#### 一、简单进入一个hello world ``` package main import "fmt" func main() { fmt.Println("hello world!") } ``` 1.package main是将本文件打包成main包,一个程序**有且只有一个main包**; 2.import是该文件下所需的“依赖的包”,这里我们所需以来的包是fmt,所需“依赖”的函数是Println()。golang中都是通过包.函数来进行函数调用的; 3.一个程**有且只有一个main()函数** #### 二、变量的定义 ######(一)使用var关键字进行定义 ``` func variableTypeDeduction() { var a, b = 3, 4 var c...阅读全文

博文 2018-09-23 23:42:25 ace_kylin

LeetCode-8-字符串转换整数 (atoi)

题目描述 字符串转换整数 (atoi) 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。 在任何情况下,若函数不能进行有效的转换时,请返回 0。 说明: 假设我们的环境只能存储 32 位大小的...阅读全文

撮合引擎开发:开篇

撮合引擎开发:开篇 撮合引擎开发:MVP版本 撮合引擎开发:数据结构设计 撮合引擎开发:对接黑箱 撮合引擎开发:解密黑箱流程 前言 自从有人在微信群里开价5万求购Golang版的撮合引擎之后,我就想自己开发一款,毕竟,以我的经验来说,开发个高性能的撮合引擎并没什么难度。 说干就干,于是,利用业余时间慢慢开发出了一款Golang版的高性能撮合引擎,前前后后花了大概一个月的时间。再想想自己好久没更新文章了,我的个人IP都已经生锈了,也应该发大招磨一磨了。因此决定,干脆就以连载的方式,分享下我是如何设计与实现这款价值超5万的撮合引擎的。 本来,想发成掘金小册,收点稿费,毕竟这是个具有很大商业价值的软件,但问了掘金的人员,他们目前不接收这类主题。最终决定免费发布,还可以多发几个渠道,说不定还能给我多...阅读全文

golang接口

接口是方法的集合 package main import ( "fmt" "math" ) type geometry interface { area() float64 perim() float64 } type rect struct { width, height float64 } type circle struct { radius float64 } func (r rect) area() float64 { return r.width * r.height } func (r rect) perim() float64 { return 2*r.width + 2*r.height } func (c circle) area() float64 { return m...阅读全文

博文 2017-11-16 17:00:10 peterinblog

httprouter解读(continuing)

httprouter解读 核心思想 与defaultServeMux的实现区别在于什么?采取特殊的数据结构作路由。 defaultServeMux的实现采用什么样的数据结构? httprouter的实现采用什么样的数据结构? router的架构图是怎样的,与server.go有何异同 一些http相关的细节 其他细节 细读源码 Router的 paramsPool?sync.Pool需要看看 done 修复重定向是代码大头,得细细解读重定向相关的协议内容 这部分先跳过吧,细节太多了 http包的server.go里面req的context里面包含了params怎么取消的。done “server.serve => conn.serve ==>defer cancleCtx/ w.cancel...阅读全文

博文 2019-11-16 23:32:43 weicao

如何使用Go Modules(一)

Go 1.11和1.12包含了基础的modules,Go的最新的依赖管理系统,使得依赖版本的信息更加显而易见,管理更加方便。本文介绍了如何使用Go modules的基本操作。 一个module是多个Go packages的集合,在module的根目录下会生成一个文件go.mod。go.mod文件定义了这个module的依赖目录,每一个依赖的表现形式就是在go.mod 中记录的一行路径和特殊的版本描述。 从Go 1.11中,当当前目录或任何父目录具有go.mod时,只要该目录位于GOPATH/src目录内,为了兼容性,Go仍然会使用旧的GOPATH模式,即使目录中有go.mod文件。)从Go1.13开始,Go 的module模式作为默认的功能。 如何使用Go modules?本文从以下几节讲解...阅读全文

博文 2020-01-07 11:32:55 Lis_