Go
、moddemod
这个作者很懒,什么都没留下…
展开
-
Go语言安装以及环境配置
windwos下载地址:https://studygolang.com/dl安装完后配置环境变量GOROOT就是go的安装目录GOBIN就是go的安装目录的bin目录GOPATH是Go项目的代码存放位置。这个是我们自定义的目录,就好比其他IDE的worksapce该目录下有三个子目录Go代码必须在工作空间内。工作空间是一个目录,其中包含三个子目录:src 里面每一个子目录,...原创 2020-02-19 21:23:20 · 537 阅读 · 0 评论 -
Gogs--一个基于 Go 语言开发的 git 代码托管平台
写在前面的话下面介绍的都是基于docker安装的,其他安装方式可以参考gogs安装.安装首先安装mysql,这里也是docker安装,可以参考另外一篇博客安装MySQL,有问题可以留言.sudo docker pull gogs/gogssudo docker run -d --name=gogs -p 10022:22 -p 10080:3000 -v /var/gogs:/dat...原创 2019-12-27 14:29:43 · 1497 阅读 · 0 评论 -
go工具链
go build此命令默认每次都会重新编译除了标准库意外的所有依赖包。go install和build参数相同,但会将编译结果安装到bin、pkg目录。最关键的是,go install支持增量编译,在没有修改的情况下,会直接链接pkg目录中的静态包。go get将第三方包下载到GOPATH列表的第一个工作空间。默认不会检查更新,须使用-u参数。-d 仅下载,不安装-u 更新包,包...原创 2019-12-13 19:27:26 · 169 阅读 · 0 评论 -
go语言协程
协程(Coroutine)本质上是一种用户态线程,不需要操作系统来进行抢占式调度,且在真正的实现中寄存于线程中,因此,系统开销极小,可以有效提高线程的任务并发性,而避免多线程的缺点。goroutine是Go语言中轻量级线程实现,由Go运行时(runtime)管理。在一个函数调用前加上关键字go,这次调用就会在一个新的goroutine中并发执行,当被调用的函数返回时,这个goroutine也自动...原创 2019-12-09 14:43:52 · 132 阅读 · 0 评论 -
闭包
基本概念闭包是可以包含自由变量(未绑定到特定对象)的代码块,这些变量不在这个代码块内或者任何全局上下文中定义,而是在定义代码块的环境中定义。要执行的代码块(由于自由变量包含在代码块中,所以这些自由变量以及它们引用的对象没有被释放)为自由变量提供绑定的计算环境(作用域)。闭包的价值闭包的价值在于可以作为函数对象或者匿名函数,对于类型系统而言,这意味着不仅要表示数据还要表示代码。支持闭包的多数语...原创 2019-12-09 11:57:27 · 123 阅读 · 0 评论 -
Go Modules( vgo )go依赖管理工具
mkdir go_testcd $_export GO111MODULE=on # 开启go mod Linuxset GO111MODULE=on # windowsgo mod init # 初始化生成go.modexport GOPROXY=https://mirrors.aliyun.com/goproxy/ # 设置代理 Linuxset GOPROXY=https://mirrors.aliyun.com/goproxy/ # 设置代理 windowsgo clean -modc原创 2019-12-08 11:40:20 · 340 阅读 · 0 评论 -
go get无法安装golang.org/x/的解决方法
写在前面的话因为golang.org/x/服务器在境外,所以正常情况下go get是不能安装的,需要科学上网才可!下面是博主提供的文件,可以先搜索你需要的文件是否存在,存在你再下载!github地址:https://github.com/moddemod/golang.orgThe mirror of golang.org/xUpdated November 13, 2019Here...原创 2019-11-13 15:35:41 · 7599 阅读 · 0 评论 -
使用包实现代码重用
在Go语言中,包将用于代码编组,以便在Go程序中导入并使用它们。Go程序中以package语句开头。main包是一种特殊的包,其特殊之处在于不能导入。对于main包唯一的要求是,必须声明一个main函数,这个函数不接受任何参数不返回任何值,简而言之,main包是程序的入口。在main包中,可使用import导入其他包。导入包后,就可使用其中被导出的标识符。要使用第三方包,必须先使用命令go ...原创 2019-10-31 20:10:11 · 137 阅读 · 0 评论 -
通道
如果说Goroutine是一种支持并发编程的方式,那么通道就是一种与Goroutine通信的方式。通道让数据能够进入和离开Goroutine,可方便Goroutine之间进行通信。在其他编程语言中,并发编程通常是通过在多个进程或线程之间共享内存实现的。共享内存能够让程序同步,确保程序以合乎逻辑的方式执行。在程序执行的过程中,进程或线程可能对共享内存加锁,以禁止其他进程或线程修改它。虽然使用共享...原创 2019-10-31 19:50:25 · 180 阅读 · 0 评论 -
并发
并发的含义并发:逻辑上具备同时处理多个任务的能力。并行:物理上在同一时刻执行多个并行任务。我们通常会说程序是并发设计的,也就是说它运行多个任务同时执行,但实际上并不一定是真的在同一时刻发生。并行是并发设计的理想模式。多线程或多进程是并行的基本条件,但单线程也可用协程做到并发。在Go中只需要在函数调用之前添加go关键字即可创建并发任务。关键字go并非执行并发操作,而是创建一个并发任务单元...原创 2019-10-31 12:20:05 · 532 阅读 · 0 评论 -
错误处理
Go错误处理在Go语言中,一种约定是在调用可能出现问题的方法或函数时,返回一个类型为错误的值。这意味着如果出现了问题,函数通常不会引发异常,而让调用者决定如何处理错误。package mainimport ( "fmt" "io/ioutil")func main() { file, err := ioutil.ReadFile("mod.txt") if err != ni...原创 2019-10-31 11:35:04 · 490 阅读 · 0 评论 -
Go中字符串
字符串Go语言中的字符串实际上是只读的字节切片。要获悉字符串包含多少个字节,可使用Go内置函数len。在Go中,可使用格式设置将十进制转换为字符和二进制表示,二进制表示在C语言中是没有的。package mainimport ( "fmt")func main() { s := "调制解调人生" fmt.Println(len(s)) // 一个汉字占三字节,输出18 n...原创 2019-10-31 00:08:37 · 118 阅读 · 0 评论