本文只是简单的介绍了五种错误处理策略,对于如何更优雅的处理错误,可以翻看我往期的文章。 "go之父谈error" "go 1.13的错误处理" 错误处理策略 1. 传播错误 这意味着函数中某个子程序的失败,会变成该函数的失败。把流程中某个子函数的错误“传播”给主流程函数,并中断。 这样的错误返回也可 ...
分类:
编程语言 时间:
2020-04-27 17:15:58
阅读次数:
59
1、使用os包读取文件的内容 // 自定义每次读取数据长度 func ReadFileFromOS() { file, err := os.Open("./abc") if err != nil { fmt.Printf("open file fail,err: %+v\n", err) retur ...
分类:
编程语言 时间:
2020-04-27 15:41:30
阅读次数:
63
文件分为文本文件 和 二进制文件 打开和关闭文件 os.Open() 函数能够打开一个文件,返回一个 *File 和一个 err。对得到的文件实例调用 close() 方法能够关闭文件。 package main import ( "fmt" "os" ) func main(){ // 只读方式打 ...
分类:
其他好文 时间:
2020-04-25 19:11:01
阅读次数:
63
二叉查找树是最常用的一种二叉树,它支持快速插入、删除、查找操作,各个操作的时间复杂度跟树的高度成正比,理想情况下,时间复杂度是 O(logn)。 不过,二叉查找树在频繁的动态更新过程中,可能会出现数的高度远大于 log2^n 的情况,从而导致各个操作的效率下降。极端情况下,二叉树会退化为链表,时间复 ...
分类:
编程语言 时间:
2020-04-23 00:21:58
阅读次数:
86
可选链接 可选链接:查询和调用当前可能为nil的可选项的属性,方法和下标的过程。若当前optional包含值,则属性,方法或下标调用成功;若optional是nil,则属性,方法或下标调用会返回nil。多个可选链接可以链在一起,如果链中的任何可选链接返回nil,则整个链都会正常失败。 可选链接作为强 ...
分类:
其他好文 时间:
2020-04-21 23:54:44
阅读次数:
110
server package main import ( "fmt" "net" "os" "time" ) func SHandleError(err error, when string) { if err != nil{ fmt.Println("err=", err, when) os.Ex ...
分类:
编程语言 时间:
2020-04-21 16:53:33
阅读次数:
109
性质1:每个节点要么是黑色,要么是红色。 性质2:根节点是黑色。 性质3:每个叶子节点(NIL)是黑色。 性质4:每个红色节点的两个子节点一定都是黑色。 不能有两个红色节点相连。 性质5:任意一节点到每个叶子节点的路径都包含数量相同的黑结点。 从性质5又可以推出: 性质5.1:如果一个节点存在黑子节 ...
分类:
其他好文 时间:
2020-04-19 22:27:33
阅读次数:
169
一、服务器docker开启远程访问 在ExecStart这一行后添加 ,如下图 重启docker 确保服务器安全组开放2375端口 注意:直接开放2375端口意味着其他任何人也可以直接操作服务器,这里仅做测试用,正式服务器要加秘钥验证 二、安装Docker插件&配置Docker服务器 1.打开Fil ...
分类:
其他好文 时间:
2020-04-19 12:31:21
阅读次数:
181
前一篇文章《Golang并发模型:轻松入门select》介绍了select的作用和它的基本用法,这次介绍它的3个进阶特性。 nil的通道永远阻塞 如何跳出for-select select{}阻塞 nil的通道永远阻塞 当case上读一个通道时,如果这个通道是nil,则该case永远阻塞。这个功能有 ...
分类:
其他好文 时间:
2020-04-15 18:42:03
阅读次数:
74
可选链式调用 可选链式调用是一种可以在当前值可能为 nil 的可选值上请求和调用属性、方法及下标的方法。如果可选值有值,那么调用就会成功;如果可选值是 nil,那么调用将返回 nil。多个调用可以连接在一起形成一个调用链,如果其中任何一个节点为 nil,整个调用链都会失败,即返回 nil。 注意 S ...
分类:
其他好文 时间:
2020-04-12 12:46:16
阅读次数:
64