随笔分类 -  GO-知识

摘要:0.1、索引 https://waterflow.link/articles/1666716727236 1、panic 当我们执行panic的时候会结束下面的流程: package main import "fmt" func main() { fmt.Println("hello") panic 阅读全文
posted @ 2023-04-11 09:19 golandhome 阅读(78) 评论(0) 推荐(0) 编辑
摘要:索引:https://waterflow.link/articles/1666277946416 在go中切片的底层是数组,所以切片的数据连续存储在数组的数据结构中。如果底层的数组满了,切片还需要添加元素的话,底层数组就需要扩容。如果底层数组几乎为空时,就会缩容。 在切片内部其包含一个指向底部数组的 阅读全文
posted @ 2023-04-11 09:18 golandhome 阅读(64) 评论(0) 推荐(0) 编辑
摘要:0.1、索引 https://waterflow.link/articles/1666339004798 1、map的结构 map提供了键值对的无序集合,所有的键都是不重复的。在go中map是基于bmap数据结构的。在内部hash表是一个桶数组,每个桶是一个指向键值对数组的指针。每个桶里面可以保存8 阅读全文
posted @ 2023-04-11 09:17 golandhome 阅读(179) 评论(0) 推荐(0) 编辑
摘要:0.1、索引 https://waterflow.link/articles/1666449874974 1、字符串编码 在go中rune是一个unicode编码点。 我们都知道UTF-8将字符编码为1-4个字节,比如我们常用的汉字,UTF-8编码为3个字节。所以rune也是int32的别名。 ty 阅读全文
posted @ 2023-04-11 09:17 golandhome 阅读(15) 评论(0) 推荐(0) 编辑
摘要:临时文件是一个程序运行时才创建,程序结束后就无用的文件。这就延伸出了一个很重要的点:不管创建的临时文件是否已经存在,程序都应该以读写的方式打开,也就是一旦打开,就会抹除原来的内容;程序结束时就无用的文件,这就需要在程序结束时自动删除。 现在的操作系统都提供了临时文件夹,临时文件夹的意思,就是重启操作 阅读全文
posted @ 2023-04-10 17:56 golandhome 阅读(411) 评论(0) 推荐(0) 编辑
摘要:说到Go语言的闭包,不得不说说全局变量和局部变量 全局变量的特点: 1.常驻内存 2. 污染全局 局部变量的特点: 1.不常驻内存 2.不污染全局 而Go语言的闭包可以做到 1.可以让变量常驻内存 2.可以让变量不污染全局 所以闭包主要是为了避免全局变量的滥用。 闭包 1.闭包是指有权访问另一个函数 阅读全文
posted @ 2023-04-10 14:21 golandhome 阅读(45) 评论(0) 推荐(0) 编辑
摘要:Go 语言支持匿名函数,可作为闭包。匿名函数是一个"内联"语句或表达式。匿名函数的优越性在于可以直接使用函数内的变量,不必申明。 以下实例中,我们创建了函数 getSequence() ,返回另外一个函数。该函数的目的是在闭包中递增 i 变量,代码如下: 实例 package mainimport  阅读全文
posted @ 2023-04-10 14:20 golandhome 阅读(23) 评论(0) 推荐(0) 编辑
摘要:Go语言中闭包是引用了自由变量的函数,被引用的自由变量和函数一同存在,即使已经离开了自由变量的环境也不会被释放或者删除,在闭包中可以继续使用这个自由变量,因此,简单的说: 函数 + 引用环境 = 闭包 同一个函数与不同引用环境组合,可以形成不同的实例,如下图所示。 图:闭包与函数引用 一个函数类型就 阅读全文
posted @ 2023-04-10 14:19 golandhome 阅读(91) 评论(0) 推荐(0) 编辑
摘要:Golang反射获取变量类型和值 1. 什么是反射 反射是程序在运行期间获取变量的类型和值、或者执行变量的方法的能力。 Golang反射包中有两对非常重要的函数和类型,两个函数分别是: reflect.TypeOf能获取类型信息reflect.Type; reflect.ValueOf 能获取数据的 阅读全文
posted @ 2023-04-08 14:53 golandhome 阅读(212) 评论(0) 推荐(0) 编辑
摘要:概述 Go 支持将多个结构体通过嵌套的方式,组成一个大的结构体,降低了单个结构体复杂度,同时提高了结构体之间组合的灵活性。 例子 为了省略篇幅,本小节只使用 字面量 方式初始化,new() 的初始化方式请参照 结构体 小节。 每个结构体单独初始化,最后组装 package main import ( 阅读全文
posted @ 2023-04-07 15:11 golandhome 阅读(187) 评论(0) 推荐(0) 编辑
摘要:一、整型 1. 整型介绍 Go 语言中,整型可以分为以下几类: 类型描述 uint8 无符号 8位整型 (0 到 255) uint16 无符号 16位整型 (0 到 65535) uint32 无符号 32位整型 (0 到 4294967295) uint64 无符号 64位整型 (0 到 184 阅读全文
posted @ 2023-04-04 15:33 golandhome 阅读(241) 评论(0) 推荐(0) 编辑
摘要:一、开发环境搭建 1. 下载 SDK 1 // Go官网下载地址 2 https://golang.org/dl/ 3 ​ 4 // Go官方镜像站(推荐) 5 https://golang.google.cn/dl/ 2. 安装 由于Go语言是一门跨平台的编译型语言,我们只需要在一个平台下进行开发 阅读全文
posted @ 2023-04-04 15:32 golandhome 阅读(60) 评论(0) 推荐(0) 编辑
摘要:一、标识符 标识符是指定义的具有特殊意义的词,例如变量、常量、函数名等等,任何一门语言中都对自己的标识符有特殊定义的规则。在 Go 语言中,标识符由字母数字和下划线组成,并且只能以字母和下划线开头,例如: 数字、字母和下划线组成:123、abc _ 只能以字母和下划线开头:abc123、_sysVa 阅读全文
posted @ 2023-04-04 15:31 golandhome 阅读(41) 评论(0) 推荐(0) 编辑
摘要:原文链接:https://www.zhoubotong.site/post/91.html通常树形菜单的实现基本就是递归调用,大部分场景毕竟这种数据不多,性能倒是并不突出, 下面给个demo,有兴趣的朋友可以看看: 新建一个city表: CREATE TABLE `city` ( `id` int 阅读全文
posted @ 2023-04-04 14:25 golandhome 阅读(102) 评论(0) 推荐(0) 编辑
摘要:原文链接: Go 语言 new 和 make 关键字的区别 本篇文章来介绍一道非常常见的面试题,到底有多常见呢?可能很多面试的开场白就是由此开始的。那就是 new 和 make 这两个内置函数的区别。 其实这个问题本身并不复杂,简单来说就是,new 只分配内存,而 make 只能用于 slice、m 阅读全文
posted @ 2023-04-04 14:11 golandhome 阅读(12) 评论(0) 推荐(0) 编辑
摘要:Go基础:iota关键字的使用 iota介绍 iota是go语言的常量计数器,只能在常量的表达式中使用。 其值从0开始,在const中每新增一行将使得iota计数一次,即iota自己增长1(从这点来看,iota可以看成const块中的行索引,记录行数),其值一直自增1直到遇到下一个const关键字, 阅读全文
posted @ 2023-04-04 14:07 golandhome 阅读(59) 评论(0) 推荐(0) 编辑
摘要:首先要搞清楚容量和长度的区别: 容量是指底层数组的大小,长度指可以使用的大小 容量的用处在哪?在与当你用 appen d扩展长度时,如果新的长度小于容量,不会更换底层数组,否则,go 会新申请一个底层数组,拷贝这边的值过去,把原来的数组丢掉。也就是说,容量的用途是:在数据拷贝和内存申请的消耗与内存占 阅读全文
posted @ 2023-04-04 14:02 golandhome 阅读(172) 评论(0) 推荐(0) 编辑

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