![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GO
文章平均质量分 61
go语言学习
Ernest_NEU
这个作者很懒,什么都没留下…
展开
-
go_单元测试
以测试驱动开发的基本思想就是在开发功能代码之前,先编写测试代码,从而以测试来驱动整个开发过程的进行。原创 2023-12-24 16:36:23 · 24 阅读 · 0 评论 -
go_oop
Go 不是纯粹的面向对象的编程语言。这节我们学习下与其他面向对象的语言(如 Java)相比,它们中的一些在实现上完全不同。原创 2023-12-24 16:23:04 · 21 阅读 · 0 评论 -
go_包管理
到目前为止,所有示例代码只有一 Go 文件,其中包含一个 main函数和几个其他函数。这种将所有源代码写入单个文件的方法是不可扩展的。重用和维护以这种方式编写的代码变得不可能。这就是需要使用包的原因。包用于组织 Go 源代码以获得更好的可重用性和可读性。包是位于同一目录中的 Go 源文件的集合。包提供了代码划分,因此使得Go 项目易于维护。原创 2023-12-24 16:06:50 · 24 阅读 · 0 评论 -
go_反射
反射是Go的高级用法之一,是程序在运行时检查其变量和值并找到他们的类型的能力。原创 2023-12-24 15:45:53 · 39 阅读 · 0 评论 -
go_文件读取
最基本的操作是将整个文件读入内存。这是在ioutil包的ReadFile函数的帮助下完成的。创建文件的时候,如果存在同名文件,则create函数将截断该文件,此函数返回文件错误描述。2.将字符串写入文件。原创 2023-12-23 11:12:06 · 24 阅读 · 0 评论 -
go_错误处理
创建自定义错误的最简单方法是使用errors包的New函数s stringreturn e.s实现非常简单。errorString是具有单个字符串s字段的结构类型。第 14 行使用了 errorString 指针接收器来实现 error 接口的 Error() string 方法。第 5 行的 New() 函数有一个字符串参数,通过这个参数创建了 errorString 类型的变量,并返回了它的地址。于是它就创建并返回了一个新的错误。原创 2023-12-18 11:05:02 · 14 阅读 · 0 评论 -
go_Defer语句
Defer语句用于让函数or语句可以在当前函数执行完毕后执行在 12 行使用 defer 语句,意味着函数将在函数返回finished()之前被调用。mian函数开始执行并打印上述输出的前两行。原创 2023-12-18 10:34:39 · 25 阅读 · 0 评论 -
go_泛型
在编程语言中,泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型在保证与Go 1完全兼容的情况下,为类型及函数声明增加可选的类型参数来扩展支持泛型函数和类型类型参数使用接口类型进行约束,并允许在接口类型中内嵌附加元素来指定约束的类型集合可以通过显式指定类型实参,来实例化泛型类型和函数。为了简洁性,类型推断机制可以在大多数场景下减少甚至忽略泛型实例化时指定的类型实参个数。原创 2023-12-18 09:52:43 · 17 阅读 · 0 评论 -
go_Mutex(互斥锁)
当一个程序并发运行时,修改共享资源的部分代码不应该被多个Goroutines同时访问修改共享资源的这段代码被称为临界区使用互斥锁,限定临界区只能同时由一个线程持有。原创 2023-12-18 09:02:07 · 30 阅读 · 0 评论 -
go_channel
Channels可以被认为是Goroutine进行通信的管道。类似于水在管道中从一端流向另一端的方式,数据可以从一端发送并使用Channel从另一端接收。原创 2023-12-17 15:17:38 · 22 阅读 · 0 评论 -
Goroutine(Go协程)
Go是一种并发语言,Go中使用Goroutine和channel处理并发Goroutines是与其他函数or方法同时运行的函数or方法Goroutines可以被认为是轻量级线程。与线程相比,创建Goroutine的成本很小。因此,Go应用程序通常会同时运行数千个GoroutineGoroutines相对于线程的优势。原创 2023-12-17 10:35:05 · 24 阅读 · 1 评论 -
go_接口
在Go中,接口类型是一种抽象类型,是方法的集合,其他类型实现了这些方法就是实现了这个接口。原创 2023-12-17 09:56:44 · 23 阅读 · 1 评论 -
go_方法
必须指定接收者。原创 2023-12-16 10:08:30 · 20 阅读 · 1 评论 -
go_结构体
这种情况下也可以使用stu1.Name 代替(*stu1).Name (后者是显示的解引用)注意:当定义一个结构体变量,但是没有给它提供初始值,则对应的字段被赋予它们各自类型的零值。即使匿名字段没有明确的名称,默认情况下匿名字段的名称就是其类型的名称。只创建一个新的结构变量,并没有像命名结构那样定义任何新的结构类型。一个结构体可能包含一个字段,而该字段又是一个结构。可以创建具有仅包含类型而没有字段名称的字段的结构。这些结构的类型称为匿名函数。这些类型的字段称为匿名字段。这些类型的结构称为嵌套结构。原创 2023-12-16 09:13:01 · 25 阅读 · 1 评论 -
go_指针
指针是存储另一个变量的内存地址的变量指针的空值为nil。原创 2023-12-14 15:39:33 · 15 阅读 · 1 评论 -
go_函数
可以从函数返回命名值,如果返回值被命名,则可以认为它在函数的第一行被声明为变量。result-list:函数返回值。一个函数可以返回多个值。原创 2023-12-14 15:24:32 · 18 阅读 · 1 评论 -
go_字符串
字符串是Go中的字节切片Go 中的字符串是兼容Unicode编码的,并且是UTF-8编码的。原创 2023-12-14 15:09:52 · 16 阅读 · 1 评论 -
go_map
map是一种无序的键值对它是数据结构hash表的一种表现方式map的工作方式是:定义键和值,并且可以获取,设置和删除其中的值。原创 2023-12-14 14:55:03 · 16 阅读 · 1 评论 -
go_切片
切片是对数组一个连续片段的引用(该数组我们称之为相关数组,通常是匿名的),所以切片是一个引用类型实际开发中我们很少使用数组,取而代之的是切片切片是一个长度可变的数组。原创 2023-12-13 18:13:43 · 22 阅读 · 0 评论 -
go_数组
数据的长度是固定的。我们在声明一个数组时需要指定它的长度,一旦指定了长度,那么它的长度值是不可以改变的。可以使用不同的方式来声明数组默认值都为0a[0]=3a := […]int{3,4,5,6,7}// 也可以不显式定义数组长度,由编译器完成长度计算Go中的数组是值类型而不是引用类型。这意味着当数组赋值给一个新的变量时,该变量会得到一个原始数组的一个副本如果对新变量进行更改,则不会影响原始数组。原创 2023-12-13 17:40:02 · 21 阅读 · 0 评论 -
go循环与判断条件
for是Go中唯一可用的循环condition;post{原创 2023-12-13 12:57:08 · 20 阅读 · 0 评论 -
go基础数据类型
数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,这样就可以充分利用内存。以下是 Go 中可用的基本类型:bool (布尔)数值类型byterunestring。原创 2023-12-13 12:48:12 · 18 阅读 · 0 评论 -
go变量和常量
利用变量将这个数据的内存地址保存起来。原创 2023-12-13 12:37:03 · 16 阅读 · 0 评论