随笔分类 - Go
Go语言快速入门
摘要:1、是什么? 在实际的项目中,我们希望通过程序的错误信息快速定位问题,但是又不喜欢错误处理;代码就会很冗余又啰嗦。Go语言没有提供类似Java、C#语言中的try...catch异常处理方法,而是通过函数返回值逐层往上抛。这种设计,鼓励工程师在代码中显示的检查错误,而非忽略错误,好处就是避免漏掉应该
阅读全文
摘要:1、是什么? type是go语法里额重要而且常用的关键字,type绝不只是对应于C/C++中的typeof。搞清楚type的使用,就容易理解Go语言中的核心概念struct、interface、函数等的作用 2、怎么玩? (1) 定义结构体 // 使用type定义结构体 type Person st
阅读全文
摘要:1、是什么? 面向对象世界中的接口的一般定义是”接口定义对象的行为”。它表示让指定对象应该做什么。实现这种行为的方法(实现细节)是针对对象的。 在Go中,接口是一组方法签名。当类型为接口中的所有方法提供定义时,它被称为实现接口。它与0OP非常相似。接口指定了类型应该具有的方法,类型决定了如何实现这些
阅读全文
摘要:1、是什么? Go 语言中同时有函数和方法。一个方法就是一个包含了接受者的函数,接受者可以是命名类型或者结构体类型的一个值或者是一个指针。所有给定类型的方法属于该类型的方法集 方法只是一个函数,它带有一个特殊的接收器类型,它是在func关键字和方法名之间编写的。接收器可以是struct类型或非str
阅读全文
摘要:1、是什么? OOP:面向对象 Go语言的解构体嵌套 1、模拟集成性:is - a type A struct { field } type B struct { A // 匿名字段 } 这种方式就会存在变量提升 2、模拟聚合关系:has - a type C struct { field } ty
阅读全文
摘要:1、什么是结构体? Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 2、定义格式 type struct_var_type struct { member definition member def
阅读全文
摘要:1.指针的概念 指针是存储另一个变量的内存地址的变量 2.获取指针的值 通过&变量名 func main() { a := 10 fmt.Printf("%T\n", a) fmt.Println(a) fmt.Printf("a的内存地址:%p\n", &a) } 3.声明指针 *T:代表着指向T
阅读全文
摘要:1.闭包的概念 Go语言中支持将一个函数作为另一个函数的返回值,这样就形成了闭包的结构 闭包(closure) 一个外层函数中,有内层函数,该内层函数中,会操作外层函数的局部变量(外层函数中的参数或者外层函数中直接定义的变量),并且该外层函数的返回值就是这个内层函数 这个内层函数和外城函数的局部变量
阅读全文
摘要:1.高阶函数和回调函数的定义 根据Go语言的数据类型特点,可以将一个函数作为另外一个函数的参数 例如: 现在有fun1() , fun2()两个函数,当我们把fun1作为fun2这个函数的参数时。 fun2函数:称之为高阶函数 接收一个函数作为参数的函数,高阶函数的定义 fun1函数:称之为回调函数
阅读全文
摘要:1.函数也是有类型的 func (参数列表类型的数据类型)(返回值列表的数据类型) /** * @author ly (个人博客:https://www.cnblogs.com/qbbit) * @date 2023/5/11 22:49 * @tags 喜欢就去努力的争取 */ package m
阅读全文
摘要:1.defer是什么? 字面意思来看,defer是延迟,推迟的意思 在go语言中,使用defer关键字来延迟一个函数或者方法的执行 2.defer能干嘛? 对象.close(),临时文件的删除 文件.open() defer close() 读或写 go语言中关于异常的处理,使用panic()和re
阅读全文
摘要:1.是什么? 函数就是执行特定任务的代码块 2.函数的意义 避免重复的代码 增强程序的扩展性 3.函数的使用步骤 step1 : 函数的定义,也叫声明 step2 : 函数的调用,就是执行函数中的代码 4.函数的语法 func funcName (paramName1 type1,paramName
阅读全文
摘要:1.strconv是什么? strconv是用来处理字符串和基本类型之间的转换的 2.strconv的使用 /** * @author ly (个人博客:https://www.cnblogs.com/qbbit) * @date 2023/5/2 14:25 * @tags 喜欢就去努力的争取 *
阅读全文
摘要:1.string是什么? Go中的字符串是一个字节的切片,可以通过将其内容封装起在""中来创建字符串。Go中的的字符串是Unicode兼容的并且是UTF-8编码的。 2.string的使用 /** * @author ly (个人博客:https://www.cnblogs.com/qbbit) *
阅读全文
摘要:1.Map的定义 map是Go中的内置类型,它将一个值与一个键关联起来。可以使用相应的键检索值。Map 是一种无序的键值对的集合。Map 最重要的一点是通过 key 来快速检索数据,key 类似于索引,指向数据的值 Map 是一种集合,所以我们可以像送代数组和切片那样送代它。不过,Map 是无序的,
阅读全文
摘要:1.深拷贝和浅拷贝的概念 深拷贝: 拷贝的是数据本身。 值类型的数据,默认都是深拷贝: array,int,float,string,bool,struct 浅拷贝: 拷贝的是数据地址。 导致多个变量指向同一块内存引用类型的数据 默认都是浅拷贝: slice,map 因为切片是引用类型的数据,直接拷
阅读全文
摘要:1.切片的定义 Go 语言切片是对数组的抽象 Go 数组的长度不可改变,在特定场景中这样的集合就不太适用,Go中提供了一种灵活,功能强悍的内置类型切片("动态数组"),与数组相比切片的长度是不固定的,可以追加元素,在追加时可能使切片的容量增 切片是一种方便、灵活且强大的包装器。切片本身没有任何数据。
阅读全文
摘要:1.数组的概念 Go语言提供了数组类型的数据结构。数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形、字符串或者自定义类型。 数组元素可以通过索引 (位置) 来读取 (或者修改),索引从0开始第一个元素索引为0,第二个索引为 1,以此类推。数组的下标取值范
阅读全文
摘要:/** * @author ly (个人博客:https://www.cnblogs.com/qbbit) * @date 2023/4/1 15:51 * @tags 喜欢就去努力的争取 */ package main import ( "fmt" "math/rand" "time" ) fun
阅读全文
摘要:1.goto语句的概念 goto语句:可以无条件的转移到运行中指定的行 ==这个用的比较少,了解一下即可== 2.语法结构和用法 /** * @author ly (个人博客:https://www.cnblogs.com/qbbit) * @date 2023/4/1 15:17 * @tags
阅读全文