
Go
文章平均质量分 64
_Creator1024_
这个作者很懒,什么都没留下…
展开
-
【Go】(十一)Go函数篇 -- 延迟调用defer
表达式(Expression) 必须是a function or a method call,不能是parenthesized(括号起来的),也defer是用于延迟执行defer后面的表达式,有三个场景会触发什么又是延迟执行呢?每次执行到defer的时候,不会直接执行实际的函数(Expression),而是保存起来(用栈保存的吗?),然后等到触发条件达成的时候,依次地执行,举个例子因此,defer适用于 关闭一些已经打开的资源,例如,,原创 2022-10-08 00:20:12 · 495 阅读 · 0 评论 -
【Go】(十)Go函数篇 -- 匿名函数和闭包
(一个可访问的存储位置,而不是固定的值);现在想创建三个临时目录,然后用完之后将这三个临时目录都删除。按下面这么写实际上只会删除最后一个目录。Q: 闭包函数是函数式编程语言的核心?需要设置一个中间变量,才能实现效果。由于循环变量的作用域的规则限制,原创 2022-10-07 18:00:28 · 390 阅读 · 0 评论 -
【Go】(九)Go函数篇 -- 函数的定义
函数从第一条语句开始执行,碰到return或者执行完最后一条语句,函数结束。Go都是值传递,无论是值变量还是指针地址变量,传递的是变量的拷贝副本。如果没有声明函数体,可能这个函数是由其他语言实现的, 比如汇编。,只要复制一个地址,而复制一个比较大的对象值的话,效率低。不定参数(可变长参数),如下所示。,到函数里面就变成一个。原创 2022-10-07 17:59:57 · 1019 阅读 · 0 评论 -
【Go】(八)Go基础 -- Json
json格式就不再赘述了,直接看看go json常用的方法。原创 2022-10-07 17:42:44 · 678 阅读 · 0 评论 -
【Go】(七)Go基础 -- Struct
结构体是将零个或多个任意类型的组合在一起的聚合数据类型,每个变量都是结构体的成员。原创 2022-10-07 17:42:06 · 122 阅读 · 0 评论 -
【Go】(六)Go基础 -- Map
如果使用bool作为value类型,会占用1个字节,100w条数据就会多占1MB左右的空间,使用空struct就会更节约内存。因为已经确定了m的长度,所以初始化keys slice的时候,直接指定长度会更加高效。go中没有set类型,可以借助map key唯一的特点实现。map的迭代是无序的,如果需要顺序迭代,要自己实现。不能直接判断两个map是否相同,需要自己实现。原创 2022-10-07 17:41:26 · 656 阅读 · 0 评论 -
【Go】(五)Go基础 -- Slice
slice有三个重要的属性指针:指向slice第一个元素的地址长度:通过len获取,表示当前slice有多少个元素,不能超过slice的容量容量:通过cap获取,容量的大小通常是slice的起始到结束的元素个数,如果使用超出了slice的容量,就会引发panicslice的基本定义// slice的默认值是nil,此时len和cap都为0 var a [ ] int a == nil // true // 此时len cap都是0,但是不为nil var b [ ] int {原创 2022-10-07 17:40:45 · 363 阅读 · 0 评论 -
【Go】(四)Go基础 -- Array
声明和初始化// ===================== // 基本声明方式 // ===================== // 声明数组长度为3,都为0值 var a [ 3 ] int // 声明数组长度为4,b[2]和b[3]都是默认值0 var b [ 4 ] int {1 , 2 } // ===================== // ...表示数组的长度由其中的元素决定 // ===================== c := [ ... ] int {原创 2022-10-07 17:39:31 · 101 阅读 · 0 评论 -
【Go】(三)Go基础 -- 基本数据类型
常量是一种表达式,其可以保证在编译阶段就计算出表达式的值,并不需要等到运行时本质上都属于基本类型:布尔、字符串、数字// math.Pi更精确的近似 const pi = 3.14159如果同时声明一组常量,除了第一项以外,其他项在等号右侧的表达式都可以省略。原创 2022-10-07 17:38:26 · 553 阅读 · 0 评论 -
【Go】(二)Go基础 -- 包和模块
执行该命令后,会在本地生成一个vendor目录,可以把其他要修改的源码放在这个目录下自行维护。在加载的时候,会自动梳理好依赖顺序(包括变量、导入的包),然后在每个包中执行如下流程。原创 2022-10-07 17:37:35 · 730 阅读 · 0 评论 -
【Go】(一)Go基础 -- 变量
同一个引用类型的指针指向的多个字可以是在连续的内存地址中(内存布局是连续的),这也是计算效率最高的一种存储形式;所有像 int、float、bool 和 string 这些基本类型都属于值类型,使用这些类型的变量直接指向存在内存中的值。引用类型的变量(上图中的r1)存储的是r1的值所在的内存地址,或者内存地址中第一个字(word)所在的位置。使用等号将一个变量的值赋给另一个的时候,实际上是在内存中的i值进行了拷贝。通过new创建的两个变量的地址是不一样的。对一个空指针的反向引用是不合法的。原创 2022-10-07 17:25:20 · 384 阅读 · 0 评论 -
Go 文件读写
os.WriteFile内部实现和我们上面写的差不多,OpenFile然后Write。bufio.NewReader通过缓存去读,对于需要读许多小文件的效率比较高。yaml文件的读写和json类似,都是通过Marshal和UnMarshal。os.OpenFile()函数能够以指定模式打开文件,从而实现文件写入。方法,通常会读到一个map或者对应的结构体中。写json文件就是Marshal后Write。读json文件主要就是用。...原创 2022-08-18 22:38:14 · 2170 阅读 · 0 评论 -
go admin基础开发
go admin基础开发指南原创 2022-07-31 12:21:54 · 1816 阅读 · 0 评论