- 博客(126)
- 资源 (5)
- 收藏
- 关注
原创 http请求头导致了dial tcp:lookup xxxx on 10.43.0.10:53 no sunch host
事实证明人有的时候也不能太偷懒,太偷懒容易给自己埋坑。
2024-04-11 15:42:19 473
原创 golang函数式编程
这意味着,只要这个闭包还在被使用,`a` 和 `b` 就不会被销毁,它们会一直存在,直到闭包不再被使用。golang 中函数是一等公民,对于函数式编程这个思维方式我还很不习惯,在看go-zero的源码过程中,显得很是吃力,go-zero中mapreduce中使用了这个编程思想,为了习惯这种思维方式,我得从基本的函数式编程开始。在这段代码中,闭包 `func() int` 保持了对 `fibonacci` 函数中的局部变量 `a` 和 `b` 的引用。5.测试:通过定义Func类型,可以方便地进行单元测试。
2024-04-09 14:27:41 562
原创 开启多个协程,并行对struct中的每个元素操作,是否会引起并发问题?
写程序时,我们经常会有这样的场景,某个对象中的信息需要从不同的服务中获取,如果我们采用顺序读取的话,就会导致耗时很长,所以,我们时长需要并行从不同服务中获取对应的信息进行组装。我这边直接使用了go-zero中并行执行函数的小工具,这倒没什么,只不过,在使用的时候,有个问题引起了我的注意,这个用法是否安全?期初,我是很犹豫这种写法的正确性,因为,我以为struct是个整体。后面,我实际打印了struct中每个元素的地址,每个元素的地址是不同的,所以,对于struct而言,每个元素应该都是一个独立的变量。
2024-04-07 14:42:38 302
原创 透传http请求遇到了一个小坑
在Go语言的HTTP处理中,io.ReadAll(ctx.Request.Body)读取了请求体的全部内容,并将它存储在一个字节切片中。这个操作会消耗掉请求体的内容,因此,如果你尝试再次读取ctx.Request.Body,你会得到一个空的读取器(reader),因为数据已经被读取过了。
2024-04-02 10:28:02 224
原创 java环境安装,环境变量配置(仅作记录)
在cmd窗口中输入java -version,可以看到安装的java环境的版本,至此,java环境安装成功。环境变量名:JAVA_HOME 变量值:jdk目录位置。win+r调出cmd窗口,输入java,敲击enter键。Path中添加变量值:%JAVA_HOME%\bin。此文档仅是自己安装jdk环境的一个记录文档。
2024-03-06 09:52:10 317 1
原创 golang:mutex理解
为了解决,这种状况,需要制定一个新的规则,就是一段时间内,队列中的goroutine没有被执行过,则优先执行队列中的goroutine,让新来的goroutine去队列中排队等待执行。无忌道:"上面的规则我们还是保留,只是需要做点调整,在排队的人,等的时间超过了10分钟,那么有新来的人还是验明身份做登记排到队伍的后面,过一段时间再切换为新来的人优先观看屠龙宝刀。是新来的还是刚被唤醒的,新来的加入到等待队列的尾部,刚被唤醒的加入到等待队列的头部,然后通过信号量阻塞,直到当前。
2023-08-25 15:02:35 108
原创 golang函数传参——值传递理解
因此,第一个案例中,实际上是把指向底层数组的指针的地址拷贝生成一个副本传到了函数体中,所以,第一个案例中修改了0xc00006c0a0地址里的内容会引发外面的参数发生变化。一直以为golang中函数传参,如果传的是引用类型,则是以引用传递,造成这样的误解,实在也不能怪我。打印的函数参数的地址和外部slice的地址是一致,并且在函数体内修改的值的确影响了slice的值,由此现象很容易得出是。实际结果,验证了我们的猜想,扩容之后,开辟新的内存地址来存放内容,因此,再修改这个参数也不会影响外部参数。
2023-08-04 16:19:31 1024
原创 golang编译出现问题
项目中引入了第三方包(github.com/jinzhu/copier),编译的时候出现了go: github.com/jinzhu/[email protected]: verifying go.mod: github.com/jinzhu/[email protected]/go.mod: reading http://192.168.24.11:3000/sumdb/sum.golang.org/lookup/github.com/jinzhu/[email protected]: 502 Bad Gatewaygo:
2022-07-01 09:55:33 880
原创 golang 关于引用和指针的深拷贝的问题
问题现象定义一个对象,对象中嵌套定义了map类型和一个对象,复制原来的对象生成新的对象,改变新对象中map的值和嵌套的对象的值会导致原来的对象的值也被改变。现象模拟package mainimport ( "encoding/json" "fmt")type StudyCopy struct { Name string Reference map[string]interface{} Nested *Nested}type Nested struct {
2022-03-30 14:16:25 1557
原创 office 365收不到取消的会议
取消的会议在office 365的日历中无法显示,通过在office 365的日历中收到导入该附件,显示文件已破坏,无法导入成功。
2022-03-02 11:44:59 441
原创 golang beego使用踩坑记录
conf文件中,数组型数据不能放在前面,会导致其他的如string型数据解析为空这种数组型数据要放到文件的最后。一不小心引入了bug,花了一天时间才往配置文件方向考虑,终于定位到问题了...
2021-12-02 10:48:05 105
转载 解决This function or variable may be unsafe
https://jingyan.baidu.com/article/49711c616b8a1ffa441b7cdc.html
2021-09-25 21:54:10 65
原创 C++ error LNK2019无法解析外部符号
背景:用visual studio 2019开发MFC项目,第一次写c++的项目,之前都是写c#和go的项目。自定义一个类,引用自定义的类,具体的是引用.h文件,死活不成功,一直报error LNK2019无法解析外部符号这个错误,但是引用.cpp文件却是可以成功的。没搞过c++的项目,但是觉得引用cpp文件能编译,肯定不是最佳解。于是,开始了我的头铁之路,真是查了半天的资料,把网上能看的文章都看完了(当然,网上的文章雷同度太高了),就是不行。最终还是解决了。首先,因为我写go和c#项目的习惯,把不
2021-09-11 20:59:47 856
原创 mongodb 批量把date类型数据改为时间戳
db.customer_poster.find().forEach( function(res){ print("poster_id:",res.poster_id); if (res.update_time instanceof Date){ var updateTime=res.update_time.getTime(); updateTime=updateTime/1000; updateT.
2021-09-02 14:59:34 666
原创 常用git指令记录
git status 查看状态git cherry-pick --abort 放弃变更git merge --abort 放弃合并变更git checkout分支名 切换分支git branch -d分支名 删除本地分支git branch -D分支名 强制删除本地分支
2021-08-10 10:31:32 118
原创 合并某个分支上特定的commit到另一个分支上
现有两个分支cloudevent和cloudevent_test分支,需要把cloudevent_test分支上的一个commit合并到cloudevent分支上,如何操作?第一步:切到cloudevent分支上。git checkout cloudevent第二步:复制cloudevent_test分支特定commit的版本号。如:92580291a7c72fe6ea5b88418d8cc2e0baf960e2第三步:执行合并。git cherry-pick 92580291a7c72fe6.
2021-08-05 09:57:52 243
原创 基于mongodb的进程锁设计
进程锁设计逻辑:/*数据库脚本use cloudeventserver;//----------------------------//Collectionstructureforlock//----------------------------db.getCollection("lock").drop();db.createCollection("lock");db.getCollection("lock").createIndex({"lock_ke...
2021-07-26 14:49:40 892
原创 mongodb replaces the value of a field with the specified value($set)
官方文档:https://docs.mongodb.com/manual/reference/operator/update/set/利用$set操作符进行全量替换:数据库中的数据:{ "_id": { "$oid": "607f8fb2f1cf542ae93e0fd6" }, "cal_id": { "$numberLong": "2" }, "attach": { "goods": {
2021-05-20 17:56:55 93
转载 Git 冲突的解决方法
作者:Kichirin链接:https://www.jianshu.com/p/9382a0e3402a来源:简书著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。Git在push时如果版本比服务器上的旧,会提示先进行pull。问题是pull时如果服务器上的版本与你本地的版本在源文件修改上有冲突,那么在解决冲突前push都会失败。用git status可以查看冲突文件。pi@raspberrypi:~/project/XXX $ git statusOn b.
2021-05-20 10:05:48 4575
原创 golang 利用反射写excel
excel操作接口封装package excelimport ( "context" "fmt" "reflect" "strings" "github.com/360EntSecGroup-Skylar/excelize")type Field struct { Value interface{}}//excel操作接口type IExcelHandler interface { // 获取处理器标识名,用途有: // 1.根据标识名替换某个处理器 // 2.打
2021-05-20 10:02:04 265
原创 golang 结构体数组,多条件排序
需要重写sort包下的Interface接口方法。如下为示例:package mainimport ( "bytes" "fmt" "io/ioutil" "reflect" "sort" "time" "golang.org/x/text/encoding/simplifiedchinese" "golang.org/x/text/transform")const ( FORMAT_DATETIME = "2006-01-02 15:04:05")func
2021-05-14 10:09:24 1665
转载 Golang 中函数作为值与类型
参考博客:https://blog.csdn.net/zchdjb/article/details/90725435package mainimport "fmt"func main() { fc := func() { fmt.Println("print fc") } fmt.Printf("fc:%T\n", fc) fc() myMsg := func(msg string) { fmt.Println("msg:", msg) } fmt.Printf("my.
2021-04-28 15:17:39 64
原创 golang mongodb 涉及到多字段排序
涉及到多字段排序的操作,代码结构如下,详情见注释:func makeGoodsOptions(page, pageSize int64) *options.FindOptions { //分页 limit := pageSize skip := (page - 1) * pageSize //排序 map无序,因此这样子会报错 // sortMap := make(map[string]interface{}, 0) // sortMap["update_time"] = -1 //
2021-04-23 16:47:31 3428 2
原创 multi-key map passed in for ordered parameter sort
记录一次阅读源码的过程。在使用golang mongo 查询的过程中,使用了sort进行排序,使用了多个字段进行排序。结果,返回multi-key map passed in for ordered parameter sort 这个错误。首先上网查了一下这个错误,发现没有人遇到过这样的问题。查询中,使用了find方法,以及排序,如下图所示。我看了一下源码。在源码中找到Find()方法。定位到Find()方法中,sort参数解析。从源码看,的确是不支持多个
2021-04-23 14:39:53 2190 2
原创 git 回滚远程仓库代码
回退提交步骤一:git reset --soft <hash>//撤回到某个commit.hash为回退的版本号:如:步骤二:git push --force //远程commit也撤回.如果本地还有需要提交的代码,执行如下步骤:步骤三:git commit步骤四:git push...
2021-04-22 16:22:05 140
原创 mongodb query array count
数据库中数据结构:{ "_id": { "$oid": "607f8fb2f1cf542ae93e0fd6" }, "cal_id": { "$numberLong": "2" }, "attach": { "goods": { "list": [{ "id": { "$numberLong": "257"
2021-04-21 17:05:28 233
原创 mongodb delete document Match on Nested Fields ($pull)
数据库中数据结构:{ "_id": { "$oid": "607f8fb2f1cf542ae93e0fd6" }, "cal_id": { "$numberLong": "2" }, "attach": { "goods": { "list": [{ "id": { "$numberLong": "257"
2021-04-21 10:46:15 112
原创 Selecting Top N Per Group in PostgreSQL
SELECT rank_filter.idFROM ( SELECT wxrt_device_record_latest.*, RANK () OVER ( PARTITION BY device_id ORDER BY captured_at DESC ) FROM wxrt_device_record_latest ) rank_filterWHERE RANK < 50ORDER BY device_id, RANK DES.
2021-04-08 10:48:49 66
原创 err:pq: at or near “?“
CockroachDB 写数据报了这个错误,是因为postgres占位符是$n,不是?参考文档:https://pkg.go.dev/github.com/lib/pqpackage mainimport ( "bytes" "context" "encoding/base64" "encoding/binary" "errors" "fmt" "log" "net/http" "os" "os/signal" "strconv" "strings" "sync"
2021-03-26 14:41:58 142
原创 StructToMap
package mainimport ( "fmt" "reflect" "github.com/fatih/structs")func main() { type User struct { Name string } type Server struct { Name string `json:"name,omitempty"` ID int Enabled bool Users []User `json:"users"` //htt.
2021-03-11 13:45:19 194
原创 golang interface to struct
package mainimport ( "errors" "fmt" "reflect")// func SetField(obj interface{}, name string, value interface{}) error {// structValue := reflect.ValueOf(obj).Elem()// structFieldValue := structValue.FieldByName(name)// if !structFieldValue..
2021-02-02 16:51:39 297
转载 golang interface to struct
package mainimport ( "errors" "fmt" "reflect")func SetField(obj interface{}, name string, value interface{}) error { structValue := reflect.ValueOf(obj).Elem() structFieldValue := structValue.FieldByName(name) if !structFieldValue.IsValid() {.
2021-02-02 16:24:47 379
C#公共通用类
2018-09-07
ASP.NET MVC 5高级编程 第5版(中文版)
2018-07-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人