本文目录一览:

golang私有仓库依赖配置

golang私有仓库依赖配置

    版本要求:go 1.14+

    go mod 配置:

        go env -w GOPRIVATE="gitlab.xxx.com"    //配置私有仓库域名 :重要

        go env -w GONOPROXY="gitlab.xxx.com"    //此配置下的域名默认不走代理

        go env -w GONOSUMDB="gitlab.xxx.com"    //此配置下的域名默认不进行gosumdb校验

        go env -w GOINSECURE="gitlab.xxx.com"    //此配置下的域名默认采用http协议 。有些公司的私有仓库采用http协议,而go mod默认采用                                                                                       https,请根据实际情况进行配置:重要

    账户及密码:

        因私有仓库一般都需要进行登录,所以可以通过隐藏文件进行用户名及密码配置。

        文件路径:~/.netrc    //默认Linux系统,

        文件内容:

            machine 域名    //gitlab.xxx.com

            login 账号

            password 密码

golang中自定义包

golang中默认以文件夹名作为包名,导入的文件的路径为$GOPATH/src

例如我们在 $GOPATH/src下面建立一个gopackage的一个文件夹,下面建立一个abc.go的文件,文件内容如下

则我们在包外部使用gopackage包中的函数时,导入格式是这样的:

我们在abc.go文件中需要导出的函数的首字母都是大写的,这是因为 只有首字母大写的标识符才可以导出 ,mutiply(int,int)int函数不可以被导出,编译失败。

当我们使用多个自定义包时如果发生冲突,怎么办呢,我们可以给不同的包提供不同的别名

如果abc.go文件中包名不是文件夹的名字,如

则在外部导入是,golang会自动为该包提供别名

mac下打patch后编译安装golang

因为业务上的需求,架构师改了hack了一下golang的源码,放出一个patch文件,给源码打了patch之后,需要重新编译go源码,

我是用 brew 安装的golang, 先用 go env 看看

锁定了源码的路径: /usr/local/Cellar/go/1.7.5/libexec

Go从1.5版本开始实现“自举”(Bootstrap),也就是用Go来实现Go、用Go来编译Go,因此这里的意思是系统默认用go1.4来编译golang,

但是我的系统里面并没有go1.4,这里偷个懒

等待编译测试完成即可。

Mac系统下彻底删除golang的方法

Mac系统下彻底删除golang的方法

首先打开终端输入命令

可以看到go的安装相关路径,一般默认情况下在是 /usr/local/go

同时可以执行命令

查看go的相关信息,以及使用命令

查看go相关的配置信息

现在正是开始怎么彻底删除Mac中的golang吧

第一步:

在root模式下删除go的安装包,执行命令:

第二步:

清除go默认的配置信息,执行命令:

第三步:

删除mac下变量环境,先打开终端命令窗口,执行命令:

删除相关信息,以下是我的信息有点多,你的安装看具体情况

以上编辑完毕后,按键盘上esc键,然后输入

保存成功

重启bash_profile,,在终端命令窗口输入如下:

ok!it's over!

golang如何创建目录

golang中关于目录与文件名等操作都在os这个包中,具体的创建目录都是通过Mkdir和MkdirAll这2个函数来实现的,这两个函数用法一致

os.Mkdir(dirName string, perm FileMode)

dirName即要创建的目录(文件夹路径),可以是绝对路径,也可以是相对路径(相对于GOPATH)

perm表示创建的目录的权限,如0777(读r权限值为4,写权限w值为2,执行权限x值为1)

如:我要在/data/program/goapp这个目录下创建一个golang这个子目录,示例如下:

package main

import (

   "os"

   "fmt"

)

func main() {

   err := os.Mkdir("/data/program/goapp/golang", 0666)

   if err != nil {

      fmt.Println(err)

   }

}

注:Mkdir和MkdirAll的区别

Mkdir创建目录,它的父级目录必须是存在的,不然创建会失败

MkdirAll可以递归创建目录,即只要根目录存在即可,如下:

err := os.MkdirAll("/data/program/goapp/golang/test/hello", 0766)

if err != nil {

   fmt.Println(err)

}

本例中:/data/program/goapp是已经存在的目录,而子目录golang/test/hello是不存在,此时要使用MkdirAll来创建