![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go杂记
haunan
这个作者很懒,什么都没留下…
展开
-
[go语言]使用系统调用时返回 bad file descriptor
最近在写一个go语言版本的libfuse时发现往文件中写入数据到达一定次数时返回bad file descriptor.原创 2022-06-27 23:34:04 · 827 阅读 · 0 评论 -
二叉树遍历算法-go语言实现
文章目录二叉树结构定义数组转二叉树非递归先序遍历非递归中序遍历非递归后序遍历层次遍历如果文章中出现什么错误,或遇到了什么困难。欢迎指出,感谢。很久没有写算法了,现在要去面试又要捡起来。二叉树的遍历都快忘光了,在网上搜了搜,发现网上的各种算法都复杂(哭)。我就打算自己总结一些适用于算法的二叉树算法。二叉树结构定义type TreeNode struct { Val int Left,Right *TreeNode }数组转二叉树func CreateTree(nums []int) *T原创 2021-09-09 09:17:31 · 329 阅读 · 0 评论 -
[go语言 golint警告]redundant type from array, slice, or map composite literal
**问题:**碰到golint 提示redundant type from array, slice, or map composite literal。翻译:数组、切片或映射复合文字中的冗余类型。原因:var foo = map[int][]int{ 0: []int{1, 2}, 1: []int{1, 2},}如上面代码改所示,foo的类型已经通过声明知道是map[int][]int。很明显,foo的键值对中的值一定为[]int,所以不需要 额外声明键值对中的值的类型。直接使用{},原创 2021-06-29 18:55:07 · 7596 阅读 · 0 评论 -
Go语言-切片截断时未置空导致的内存泄露
引言go与语言在使用切片截断时,底层数组没有改变,依然持有指向堆内存的指针,导致内存无法释放。// 示例type Node [100]bytedata := []*Node{}for i:=10; i<10; i++ { tmp := &Node{} data = append(data,tmp)}data = data[:len(data)-1] // 此时由于底层数组没有改变 所以内存不会释放切片的数据结构type arr struct { Data原创 2020-09-26 20:43:25 · 837 阅读 · 0 评论 -
Go语言中的闭包递归函数
如何在go语言中使用递归的闭包?//! 注意以下是错误的示范//! 不能够编译myfunc := func(n int) int{ if n==0 { return 0 } return myfunc(n-1)}go语言不能在使用类型推断时构造递归的闭包。这时闭包没有被申明,编译器找不到递归函数的符号。// 这是正确的做法var myfunc func(a int) intmyfunc = func(n int) int{ if n==0 { return 0 } re原创 2020-08-28 17:40:19 · 361 阅读 · 0 评论