
golang
文章平均质量分 75
java转golang开发学习中
相信美好的事情即将发生 ᅟᅠ
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
GO中的文件操作
文件的写入,我们首先需要通过 os.OpenFile打开文件。文件比较少的时候,可以通过ioutil来读取文件。2.1 通过openfile 打开文件写入。1.1 通过os.open方法读取文件。1.2 通过bufio的方式读取。1.3 通过ioutil读取。2.2 通过bufio写入。2.3 通过iouti写入。原创 2024-10-31 02:36:18 · 335 阅读 · 0 评论 -
go的反射
1.介绍有时我们需要写一个函数,这个函数有能力统一处理各种值类型,而这些类型可能无法共享同一个接口,也可能布局未知,也有可能这个类型在我们设计函数时还不存在,这个时候我们就可以用到反射。空接口可以存储任意类型的变量,那我们如何知道这个空接口保存数据的类型是什么?值是什么呢?把结构体序列化成json字符串,自定义结构体Tab标签的时候就用到了反射,ORM框架,底层就是用到了反射技术。原创 2024-10-30 02:44:40 · 1210 阅读 · 0 评论 -
channel管道
当向管道中发送完数据时,我们可以通过close函数来关闭管道,当管道被关闭时,再往该管道发送值会引发panic,从该管道取值的操作会去完管道中的值,再然后取到的值一直都是对应类型的零值。其实,当我们对一个不会变化的数据只做“读”操作的话,是不存在资源竞争的问题的。因为数据是不变的,不管怎么读取,多少goroutine同时读取,都是可以的。有时候我们会将管道作为参数在多个任务函数间传递,很多时候我们在不同的任务函数中,使用管道都会对其进行限制,比如限制管道在函数中只能发送或者只能接受。原创 2024-10-29 02:47:06 · 946 阅读 · 0 评论 -
golang中的goroutine
可以理解为用户级线程,这是对内核透明的,也就是系统并不知道有协程的存在,是完全由用户自己的程序进行调度的。OS线程(操作系统线程)一般都有固定的栈内存(通常为2MB左右),一个goroutine(协程)占用内存非常小,只有2KB左右,多协程goroutine切换调度开销方面远比线程要少。:(可以理解为线程/也可以理解为进程),在一个Golang程序的主线程上可以起多个协程。多协程和多线程:Golang中每个goroutine(协程)默认占用内存远比Java、C的线程少。1.3.1 协程计数器的简单使用。原创 2024-10-28 02:40:35 · 581 阅读 · 0 评论 -
golang接口
接口体现了程序设计的多态和高内聚低耦合的思想N Golang中的接口也是一种数据类型,不需要显示实现。在golang中,允许接口嵌套接口,我们首先创建一个 Animal1 和 Animal2 接口,然后使用Animal接受刚刚的两个接口,实现接口的嵌套。Golang中的接口可以不定义任何方法,没有定义任何方法的接口就是空接口。一个接口的值(简称接口值)是由一个具体类型和具体类型的值两部分组成的。如果结构体中的方法是值接收者,那么实例化后的结构体值类型和结构体指针类型都可以赋值给接口变量。原创 2024-10-24 02:45:12 · 892 阅读 · 0 评论 -
go mod的使用
包就是很多golang源码的集合,Go语言为我们提供了很多内置包,如fmt、strconv、strings、sort、errors、time、encoding/json、os、io等。依赖包会自动下载到 $GOPATH/pkg/mod目录,并且多个项目可以共享缓存的mod,注意使用go mod download的时候,需要首先在你的项目中引入第三方包。go init:在当前文件夹下初始化一个新的module,创建go.mod文件。搜索我们想用的包,比如搜索一个有关json操作的包,我们进去后,找到它的。原创 2024-10-23 02:38:26 · 1455 阅读 · 0 评论 -
golang中的函数和结构体
在defer归属的函数即将返回时,将延迟处理的语句按defer定义的逆序进行执行,也就是说,先被defer的语句最后被执行,最后被defer的语句,最先被执行。4.4.1 Golang JSON序列化是指把结构体数据转化成JSON格式的字符串,Golang JSON的反序列化是指把JSON数据转化成Golang中的结构体对象。结构体首字母可以大写也可以小写,大写表示这个结构体是公有的,在其它的包里面也可以使用,小写表示结构体属于私有的,在其它地方不能使用。1.2 方法作为参数。3.type 关键词。原创 2024-10-22 01:07:42 · 564 阅读 · 0 评论 -
golang的数组、slice和map
切片的容量是从它的第一个元素开始数,到其底层数组元素末尾的个数。切片(Slice)是一个拥有相同类型元素的可变长度的序列。切片拥有自己的长度和容量,我们可以通过使用内置的len()函数求长度,使用内置的cap() 函数求切片的容量。map是一种无序的基于key-value的数据结构,Go语言中的map是引用类型,必须初始化才能使用。在golang中,切片的定义和数组定义是相似的,但是需要注意的是,切片是引用数据类型。1.2 数组是值类型,赋值和传参会赋值整个数组,因此改变副本的值,不会改变本身的值。原创 2024-10-21 00:55:23 · 561 阅读 · 0 评论 -
golang 基本数据类型
golang的数据类型分为两大类,一类是基本数据类型和符合数据类型;按照传递的内容分:传递本身数据和传递地址;golang和java很相似,都是值传递,不过分为传递的值和传递的地址,传递地址的叫做引用传递;原创 2024-10-20 02:52:42 · 759 阅读 · 0 评论