获得徽章 0
当在 Go 语言中使用类型断言时,如果您尝试将一个非接口类型断言为接口类型,即使类型不匹配,也不会引发运行时错误。这是因为在 Go 中,每个类型都实现了空接口 interface{},因此任何类型都可以隐式转换为接口类型。
评论
早上起不来,晚上睡不着
一觉睡到大中午,脑子晕晕的
打开笔记又看不进去
还是看看之前的视频吧,看看视频回忆回忆之前学过的东西
评论
今天玩了依托,玩的很累,就这样子吧,明天再说
评论
之前一直听说redis大名,今天初次接触了下,比想象的易上手点,其中很多操作都有相似的影子,不过还没上手实践,希望之后可以试试
评论
今天学了gin框架,相当牛的一个框架,可以搭建web后端界面了
继续看了tcp/ip网络编程
评论
当在 Go 语言中使用类型断言时,如果您尝试将一个非接口类型断言为接口类型,即使类型不匹配,也不会引发运行时错误。这是因为在 Go 中,每个类型都实现了空接口 interface{},因此任何类型都可以隐式转换为接口类型。

虽然这种特性在某些情况下可能是有用的,但它也可能导致混淆和意外行为。因此,在进行类型断言时,要确保目标接口类型适合断言的实际类型。
展开
评论
今天睡了好久呀,昏昏沉沉的,早起太难了,就只看了课
评论
在 Go 语言中,有一个特殊的标识符 _ 可以用作空白标识符。空白标识符在多种情况下都有用途,以下是一些常见的用法:

忽略值:当您在某个地方需要变量,但实际上并不需要使用它时,可以使用 _ 来表示忽略这个值。这在多返回值的函数调用、声明中不需要的变量等场景下很有用。

导入包但不使用:如果您导入了一个包但是并不直接使用其中的内容,可以使用 _ 来表示导入操作仅仅是为了调用包中的 init 函数,而不需要访问其他部分。

遍历时忽略索引或值:在使用 range 迭代数组、切片、映射(map)等数据结构时,有时候只需要索引或值而不需要另一个。可以使用 _ 来忽略不需要的部分。

空白标识符 _ 可以帮助减少变量名的冗余,使代码更清晰、简洁。然而,需要注意的是,声明的变量必须在同一作用域中使用,否则会引发编译错误。
展开
评论
Go 语言中的 map 是一种无序的键值对集合。在 map 中,每个键(key)都是唯一的,而对应的值(value)可以重复。map 是一种非常实用的数据结构,用于存储和查找具有关联关系的数据。


需要注意的是,map 是一种引用类型,因此在函数间传递时不会发生复制,操作的是同一个 map。map 是无序的,这意味着遍历的顺序可能不同于插入的顺序。

使用 map 可以方便地存储和检索具有关联性的数据,例如字典、配置项、缓存等。
展开
评论
在 Go 语言中,数组是一种固定长度的数据结构,而切片(Slice)则是对数组的一种动态长度的封装。切片在实际开发中更为常用,因为它提供了更灵活的数组操作方式。

切片是由指向数组某个起始元素的指针、切片的长度和容量组成的。其中,长度表示切片当前包含的元素数量,而容量则表示底层数组中从切片起始元素开始到数组末尾的元素数量。

切片的动态性允许我们方便地进行添加、删除和修改元素等操作,使其在处理动态集合时非常有用。切片也常被用于函数参数和返回值,以避免传递整个数组的副本。
展开
评论
Viper需要最少知道在哪里查找配置文件的配置。Viper支持JSON、TOML、YAML、HCL、envfile和Java properties格式的配置文件。Viper可以搜索多个路径,但目前单个Viper实例只支持单个配置文件。Viper不默认任何配置搜索路径,将默认决策留给应用程序。
评论
Goroutine 泄漏(Goroutine Leaks)
在 Go 语言中,Goroutine 泄漏是指创建了 Goroutine 但没有正确关闭它,导致这些 Goroutine 永远不会结束,从而占用系统资源。这可能会在长时间运行的程序中导致内存和性能问题。
解决方法是等待所有 Goroutine 执行完毕,可以使用 sync 包、channel 或者等待组(sync.WaitGroup)等机制来实现。
可以使用 sync.WaitGroup 来追踪 Goroutine 的数量,并在每个 Goroutine 完成后调用 Done() 方法。最后,通过调用 Wait() 方法等待所有 Goroutine 完成。
展开
评论
Go语言中的 defer 语句允许您推迟(延迟)函数的执行,直到包含它的函数返回。defer 通常用于确保函数执行后清理工作、释放资源或以确保某些操作一定会在函数结束时执行。
在实际应用中,defer 经常用于处理资源释放、文件关闭、锁解除等工作,以确保不会因为遗漏而导致资源泄漏。
注意: defer 的调用顺序是“后进先出”,也就是说最后一个 defer 语句会最先执行,而第一个 defer 语句会最后执行。
展开
评论
在Go语言中,方法可以被关联到结构体类型,这些方法可以是值接收者(value receivers)或者指针接收者(pointer receivers)。

值接收者:当方法的接收者是结构体的值类型时,该方法在处理接收者时操作的是接收者的一个副本,不会修改原始接收者本身。

指针接收者:当方法的接收者是结构体的指针类型时,该方法在处理接收者时操作的是接收者的原始引用,因此可以修改原始接收者。

选择值接收者还是指针接收者取决于您对方法的预期行为。一般来说,如果方法需要修改接收者或者接收者中的数据,应该使用指针接收者。如果方法只是为了读取接收者的数据或者进行计算,可以使用值接收者。
展开
评论
下一页
个人成就
文章被阅读 478
掘力值 63
收藏集
0
关注标签
0
加入于