随笔分类 -  go,go,go

摘要:Go更新国内下载源 执行命令进行第三方代码下载 go get https://github.com/chromedp/chromedp 提示访问超时 通过下面的命令替换成国内源 echo "export GOPROXY=https://goproxy.cn" >> ~/.profile source 阅读全文
posted @ 2023-10-10 17:00 red_leaf_412 阅读(205) 评论(0) 推荐(0) 编辑
摘要:go1.11版本后引入了go mod,不再用以前的GOPATH来管理 首先在创建工程目录。下面包含 bin: go的输出执行文件 src:工程代码 package:引入的package 执行go mod init prj_name 比如下面go_try的prj。创建后执行go mod init go 阅读全文
posted @ 2023-05-19 16:31 red_leaf_412 阅读(27) 评论(0) 推荐(0) 编辑
摘要:Slice的结构如下 type slice struct { array unsafe.Pointer len int cap int } 结构非常简单,只有三个部分: array: 指向数组的指针。 len:当前长度。 cap:容量 Slice的初始化 var ints []int 变量ints实 阅读全文
posted @ 2022-03-15 16:48 red_leaf_412 阅读(78) 评论(0) 推荐(0) 编辑
摘要:文件操作用到os库。涉及到几个函数分别为os.Open/os.Create/os.OpenFile/os.Remove/os.RemoveAll (1) 当文件不存在的时候,使用os.Create var buffer bytes.Bufferbuffer.WriteString("abcd") f 阅读全文
posted @ 2022-02-17 22:56 red_leaf_412 阅读(905) 评论(0) 推荐(0) 编辑
摘要:1 什么是异常 不按照我们期望执行的都可以称之为异常 2 go语言中如何处理异常 一种是程序发生异常时, 将异常信息反馈给使用者 一种是程序发生异常时, 立刻退出终止程序继续运行 我们可以通过panic来抛出异常。 func t_defer3(){ print("t_defer3\n") panic 阅读全文
posted @ 2021-09-16 22:42 red_leaf_412 阅读(956) 评论(0) 推荐(0) 编辑
摘要:Go语言中虽然没有传统面向对象语言中类、集成的概念,不过提供了接口的支持,可以使用接口来使用一些面向对象的特性。 在 go 语言中,的接口有下面几个特点: 可以包含0个或多个方法的签名 只定义方法的签名,不包含实现 实现接口不需要显式的声明,只需实现相应方法即可 在 go 中实现接口很简单,不需要显 阅读全文
posted @ 2020-10-29 21:49 red_leaf_412 阅读(168) 评论(0) 推荐(0) 编辑
摘要:数组申明方式: var ip4 [7]uint8 = [7]uint8{1, 2, 3, 4, 5} for i, value := range ip4 { fmt.Printf("index=%d,value=%d\n", i, value) } 数组和切片slice的区别: Slice切片是对底 阅读全文
posted @ 2020-10-26 19:19 red_leaf_412 阅读(456) 评论(0) 推荐(0) 编辑
摘要:前面介绍了采用go语法的并行操作以及channel。既然是并行操作,那么就涉及到数据原子性以及同步的问题。所以在Go里面也需要采用同步的机制。 互斥锁: 由标准库代码包sync中的Mutex结构体类型表示。Sync.Mutex类型只有两个公开的指针方法-Lock和Unlock。声明方法如下: var 阅读全文
posted @ 2018-12-13 10:05 red_leaf_412 阅读(423) 评论(0) 推荐(0) 编辑
摘要:单向channel: 单向通道可分为发送通道和接收通道。但是无论哪一种单向通道,都不应该出现在变量的声明中,假如初始化了这样一个变量 var uselessChan chan <- int =make(chan <- int,10) 这样一个变量该如何使用呢,这样一个只进不出的通道没有什么实际意义。 阅读全文
posted @ 2018-12-06 11:35 red_leaf_412 阅读(449) 评论(0) 推荐(0) 编辑
摘要:前面介绍了goroutine的用法,如果有多个goroutine的话相互之间是如何传递数据和通信的呢。在C语言或者JAVA中,传输的方法包括共享内存,管道,信号。而在Go语言中,有了更方便的方法,就是channel。在同一时刻,仅有一个goroutine能向一个通道发送元素值,同时也仅有一个goro 阅读全文
posted @ 2018-12-04 09:55 red_leaf_412 阅读(810) 评论(0) 推荐(0) 编辑
摘要:Go语言最大的优势就在于并发编程。Go语言的关键字go就是开启并发编程也就是goroutine的唯一途径。一条go语句以为着一个函数或方法的并发执行。Go语句是由go关键字和表达式组成。比如下面的这种 go println(“hello go!”) 如果go关键字后面的是针对匿名函数的调用方式,那么 阅读全文
posted @ 2018-11-29 09:45 red_leaf_412 阅读(930) 评论(0) 推荐(0) 编辑
摘要:接口查询: 先来看如下的结构。结构体File实现了Read,Writer,Seek,Close的方法 type File struct{ } func (f *File) Read(buf []byte)(n int,err error){ return n,err } func (f *File) 阅读全文
posted @ 2018-11-23 09:31 red_leaf_412 阅读(189) 评论(0) 推荐(0) 编辑
摘要:在Go语言中,一个类只需要实现了接口要求的所有函数,我们就说这个类实现了该接口 我们定义了一个File类,并实现有Read()、Write()、Seek()、Close()等方法。设 想我们有如下接口: type IFile interface { Read(buf []byte) (n int,e 阅读全文
posted @ 2018-08-28 10:02 red_leaf_412 阅读(565) 评论(0) 推荐(0) 编辑
摘要:在Go语言中, 你可以给任意类型(包括内置类型,但不包括指针类型)添加相应的办法。示例如下: type Integer int func (a Integer) Less(b Integer) bool{ return a < b func main(){ var a Integer=1 if a. 阅读全文
posted @ 2018-08-26 16:08 red_leaf_412 阅读(161) 评论(0) 推荐(0) 编辑
摘要:首先在工程目录下新建三个目录:bin, pkg,src Bin文件夹是放置编译后的exe文件 Pkg文件夹是放置包生成后的.a文件 Src文件夹是放置包文件的地方 工程组织目录如下,在src中有test.go。以及add.go在calc文件夹下 代码如下: add.go package calc / 阅读全文
posted @ 2018-08-05 17:04 red_leaf_412 阅读(1594) 评论(0) 推荐(0) 编辑
摘要:1 首先在https://www.golangtc.com/download 上下载windows或者Linux的版本 2 下载后双击进行安装,可以自己选择安装路径。然后将安装路径的bin文件夹路径加入到系统PATH中去。在cmd中执行go version可以正常显示版本则表示安装成功 3 新建环境 阅读全文
posted @ 2018-08-04 10:00 red_leaf_412 阅读(186) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示