ARST打卡第156周[156/521]
Algorithm
lc1305_两棵二叉搜索树中的所有元素
感觉这题如果用goroutines的管道(缓冲为1)向主线程输送数据,应该很好做
就是一个生成器一样的模型,但是C++的话,应该可以先记录,然后控制返回一个的方式进行(之前远算的笔试好像考过)
比较暴力的方法就是直接中序遍历存在链表里面,然后另一个再加入插入,最后返回一个数组
结果真是这个最暴力的方式…醉了,这也定级为中等
1 | class Solution { |
Review
【TED演讲】我们可以开始打赢与癌症的战争
在站斗的时候,要清楚对手的位置,所以在和癌细胞战斗的时候,也要搞清楚癌细胞的位置,这样才能对指定位置处理
Tips
Share
折腾goland的配置,学习go path,go module的一些知识
goland的go配置
go root : wsl中的/usr/local/go , goland 2021.3 版本以上
go path : wsl中~/go
go modules: GOPROXY=https://goproxy.cn,direct
但还是发现goland对于io/posix.go 中的"gitlab.xxx.net/storage/api/pb"
解析不了,只有VScode可以解析…很怪
需要自己去 Sync dependencies of gitlab.xxx.net/storage: Finished successfully
但是还是下面的sync会卡住不动
中午又问了下大佬们,发现大家都是使用的windows的go……因为wsl的支持还很差劲…难受…要用windows的go来开发,然后用wsl的go来编译…
可以下午再研究一下试试…嗯嗯
研究go path 和 go modules
一起弄明白go的依赖管理 Go Modues/ GOPATH
import 首先会从$GOROOT
中寻找,然后从$GOPATH/src
中寻找,如果是以./
或者 ../
开头的import 直接去对应的相对路径寻找。
External file changes sync may be slow on WSL2
https://blog.csdn.net/changlif/article/details/122067964
怀疑是使用了go module导致了每次都要重新同步下载所有的外部库代码
因为我每次打开工程,都要重新下载,所以我就关掉了go modules
然后发现就是默认使用go path了,但是go path下面竟然没有东西…
go get -x
发现也只会更新 bin 和 pkg 目录,不会更新src目录…
然后发现 VScode跳转也是直接跳转到了 pkg指定的目录了…不用 src…
发现还是要配置go module才会使用pkg中的包…
遇到找不到的包,就sync同步一下,然后goland就能使用go path里面的pkg里面的源码了…
每次都要重新同步,goland真low,白折腾这么久
而且git blame
也显示一点都不友好
相比之下VScode使用wsl开发golang爽一万倍,不愧是go的开发者自己写的插件,所以以后还是使用VScode开发,odk