![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go语言学习
文章平均质量分 61
王羲和
这个作者很懒,什么都没留下…
展开
-
Go语言学习日志之结构体内嵌组成类型
Go语言学习日志之结构体内嵌组成类型在Go语言中一个结构体中可以内嵌另一个结构体。话不多说我们来看书中的例子:type Point struct { x,y float64}type ColoredPoint struct { Point Color color.RGBA}我们定义一个结构体ColoredPoint,这个结构体看似只有两个字段,一个是Point类型的结构体,一个是Color,但其实它具有三个字段,因为我们在其中内嵌了一个Point类型提供了字段x和y。内嵌可以使我们更简原创 2021-02-08 15:20:43 · 314 阅读 · 0 评论 -
Go语言学习日志之宕机和恢复
Go语言学习日志之宕机和恢复首先来看宕机的定义:GO语言的类型系统会捕获许多编译时的错误,但有些其他的错误,例如数组越界访问或直接引用空指针,都需要在运行时进行检查。当Go语言运行时检测到这些错误,它就会发生宕机。一个典型的宕机发生时,正常的程序执行会终止,goroutine中的所有延迟函数会执行,然后程序会异常退出并留下一条日志消息。日志消息包括宕机的值,这往往代表某种错误消息,每一个goroutine都会在宕机时显示一个函数调用的栈跟踪消息。我们可以根据这条消息在不需要重新运行一次该程序的情况下诊断发原创 2021-02-07 10:52:26 · 359 阅读 · 0 评论 -
Go语言学习日志之defer机制
Go语言学习日志之defer机制今天在学习Go语言中的函数时,遇到了用于延迟函数调用的defer关键字,觉得defer机制对于我日后用Go开发项目会有重大的意义,于是写这篇博客来记录我的学习心得。话不多说,先来看defer关键字的用法:defer resp.Body.Close()可以看出用法很简单,就是在正常的语句前加上一个defer关键字就行了。defer关键字修饰的语句会推迟到执行return语句或函数执行完毕以及发生错误之后才会执行。defer语句常用于成对的操作,例如打开和关闭,连接和断原创 2021-02-05 15:56:54 · 421 阅读 · 0 评论 -
Go语言学习日志之string字符串
Go语言学习日志之string字符串学习任何一门编程语言,再在自己能力范围内去阅读源码是非常必要的,下面就是我对Go中的字符串类型的一些粗浅的理解。先来看看官方是怎么描述string的:// string is the set of all strings of 8-bit bytes, conventionally but not// necessarily representing UTF-8-encoded text. A string may be empty, but// not nil原创 2021-02-03 14:47:28 · 201 阅读 · 0 评论 -
Go语言学习日志之“_“下划线的作用
Go语言学习日志之"_"下划线的作用作为idea的忠实粉丝,我在开始学习Go的时候就果断选用了Goland作为主力工具。前几天在我手动导包的时候发现,导入某些包时Goland会提示我在包名前加上下划线,今天又在学习Go的时候遇到了用"_"来接收返回值的情况,于是果断搜索相关资料,先贴上相关资料链接以示尊重:Golang中下划线的使用(来自Go语言中文网的大佬写的资料)言归正传,下面列出下划线在Go中的几个作用:import时使用下划线:import _ "net/http/pprof"此时会调用对应原创 2021-02-02 11:07:24 · 520 阅读 · 0 评论 -
Go语言学习日志之channel引发死锁问题
今天在看到Go中的channel时,就自己动手试了一下这个数据结构,先贴原始代码:package mainimport ( "fmt" "time")func main() { ch :=make(chan string) ch <-"abc" ch <-"def" for { fmt.Println(<-ch) }}乍一看没毛病,但就是这么简单的一个测试运行就直接报错了:D:\Go\bin\go.exe build -o C:\Users\wangx原创 2021-01-04 12:50:27 · 394 阅读 · 0 评论