安卓项目 src文件夹不显示_Golang安装与项目初始化

  下载

官网

官网下载最新的msi文件

双击打开,直接next

9ced6a7cc7e59f11d67563435427cfaf.png

选择安装路径,然后next

9238617a2f4d7b07cb2ff8af50cfb5ae.png

  环境配置

作为程序员,配置软件的环境变量是一项基本技能

   GOLANG_HOME

与Java相同,Java需要配置JAVA_HOME,Golang也同理,它能够使你在任何位置使用go xx命令,编译运行Go文件,下载Go依赖

9cc9405b01ddb475525fb44e2fc4277e.png

加入到Path中,确定即可

d45f7425cee2d5827dba6e9d3564770e.png

在cmd中输出go version进行验证

150282cb5153710f052b593c0aff2488.png

   GOPATH

作为Go,GOPATH是一个十分重要的配置,用来表明你写的go项目的存放路径

GOPATH路径最好只设置一个(允许设置多个),所有的项目代码都放到GOPATHsrc目录下。

deade0ea932824151a283ad8631dc2c6.png

创建对应文件夹,同时在该文件夹内创建binsrcpkg文件夹

  • bin用来存放编译后的二进制文件

  • pkg用来存放编译后的归档文件

  • src用来存放我们源代码和下载的第三方依赖

00544aee80ae2d72bd129e61933b92d1.png

  项目结构说明

Go语言中也是通过package来组织代码文件,我们可以引用别人的包也可以使用自己的包。一般使用域名去引用别人或者引用自己的包。既可以使用自己的github域名也可以自定义域名com.xx

当我们从下载第三方依赖时

go get github.com/go-sql-driver

这个包会下载到我们本地GOPATH目录下的src\github.com\go-sql-driver

引用时

import "github.com/go-sql-driver"

  创建项目

   第一种

在过去创建个人的Go项目,一般创建在$GOPATH/src下,项目能够正常使用,同时我们的IDE例如Goland能够识别个人项目下不同的包文件。

但是对于我们个人而言并不友好,因为$GOPATH/src同时存放着第三方下载的依赖,我们个人项目是不能与其混为一谈,也不负责单一职责原则。同时在过去的编程习惯中,个人项目应该是与第三方依赖是分开存放的。

   第二种

在其他位置创建项目,在项目内部引用项目的其他package时,必须通过相对路径的方式。通过这种方式,更够正确引用其他包文件,但是Goland难以自动识别,必须手动写import语句。同时在使用单元测试时,无法找到引用的内容。总而言之问题很大

import ("../../crawler/engine""../../crawler/model")import "../config"

   第三种

在Golang1.11后,go发布了Go Module功能,它能够使我们告别GOPATH,使个人项目不在依赖于GOPATH。提供了一个简单方便的包依赖管理工具

初始化 com.example就是前面所说的域名

go mod init com.example

该命令后,就会在当前文件夹内创建go.mod文件,内容如下

module com.examplego 1.14

go.mod文件说明

  • go.mod存放在项目的根目录下

  • go.mod面向行

  • 注释使用//

mod文件的主要指令

  • module:定义当前模块和包路径

  • require:定义所需要的模块和版本

  • exclude:排除特定版本的模块和版本

  • replace:替换指定模块

go mod命令

命令指令:go mod [可选参数]

  • init:创建和初始化

  • tidy:添加和修正缺失的模块

  • vendor:将依赖复制到vendor目录

  • verify:将依赖进行检查

  • download:下载modules到本地cache

  • edit:命令行的方式进行修改mod文件

  • graph:以文本模式打印模块需求图

  • why:为什么需要这个包

使用

使用go get命令会直接将所依赖的包加载到go.mod文件中

go get github.com/xxx

使用go mod tidy命令会将项目中用到的但mod中没有的模块更新加载到mod中

解决无法访问golang.org/x等谷歌的包

使用replace命令

  • 用新的包代替旧的包

  • 格式:replace 包[version] => 包 version

  • 不知道version,使用latest代替

module example.com/mgo 1.14replace (    golang.org/x/crypto => github.com/golang/crypto latest    golang.org/x/sys => github.com/golang/sys latest)

佛系更新,如有错误下方留言,共同进步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值