首页
Python
Java
IOS
Andorid
NodeJS
JavaScript
HTML5
【
一个小事例,了解golang通道阻塞模式
】的更多相关文章
一个小事例,了解golang通道阻塞模式
在学习golang中,channel真的是让人捉摸不透的东西,本来我自以为我理解了协程阻塞的用法了,结果就下面这个小例子,我还是在打印输出后才搞明白到底怎么回事? 当然了,这也是我自身对协程这块不太熟造成的呀,另外,学习还真不能想当然,尤其是编程这块,真是要多实践,有时候你不经意的一点小举动,可能都会让你学到东西,甚至让你受益非浅的. 下面就是那个小例子,通过输出调试看结果后,也让我比以前更了解这个channel阻塞模式了. package main import ( "fmt" &q…
【解决了一个小问题】golang protocol buffers 3中去掉json标签中的omitempty
参考了这篇帖子:golang protobuf从生成的json标记中删除omitempty标记 由于是在windows上开发,因此写了一个python脚本来解决: remove_tag.py import sys def main(): argc = len(sys.argv) if argc<2: print('usage:%s <xxx.go>'%sys.argv[0]) return f = open(sys.argv[1], 'rb') if not f: print("…
【解决了一个小问题】golang build中因为缓存文件损坏导致的编译错误
编译的过程中出现了一个吓人的错误: GOROOT=C:\Go #gosetup GOPATH=C:\Users\ahfuzhang\go #gosetup C:\Go\bin\go.exe mod tidy #gosetup go: downloading github.com/xxx/my_prj/public v0.0.14 github.com/xxx/my_prj/proxy_alloc_svr/cmd imports github.com/xxx/my_prj/public/pkg/b…
【解决了一个小问题】golang gin框架中的模板,让模板中的参数不要做HTML转义
代码中使用了类似的方式来向模板填充参数: c.HTML(200, "list.html", gin.H{"data":builder.String()}) 模板中的语法大致如下: <html> <h1>{{ .data }}</h1> </html> 发现我输入的内容都做了HTML转义. 如何不转义呢?解决方法很简单: import ("html/template") c.HTML(200, &qu…
【解决了一个小问题】golang的go.mod中出现版本错误
代码中的这一句使用prometheus2.28.0版本的代码: import "github.com/prometheus/prometheus/prompb" 我把require github.com/prometheus/prometheus v2.5.0+incompatible修改为github.com/prometheus/prometheus v2.28.0 于是出现了下面的错误: GOROOT=C:\Go #gosetup GOPATH=C:\Users\ahfuzhan…
【解决了一个小问题】golang中引用一个路径较长的库,导致goland中出现"module contains a go.mod file, so major version must be compatible: should be v0 or v1, not v2"
在项目中的go.mod文件中有这样一句: require ( github.com/xxx-devops/xx1/sdk/go v2.2.3 ) 项目的编译没有问题,但是goland中出现如下提示: go: errors parsing go.mod: D:/source/github/ahfuzhang/go.lib/go.mod:8: require github.com/xxx-devops/xx1/sdk/go: version "v2.2.3" invalid: module…
【解决了一个小问题】golang samara的kafka客户端中使用错误版本号导致初始化失败
发现在如下代码中存储kafka生产者初始化失败: config.Version = sarama.V0_10_2_1 //V2_2_0_0 producer, err := sarama.NewSyncProducer(options.Kafka.KafkaBrokerList, config) if err != nil { log.Printf("sarama.NewSyncProducer fail:%+v, list=%+v\n", err, options.Kafka.Kaf…
【解决了一个小问题】golang xorm中使用where id in (xxx),没办法使用参数替换
代码中使用XORM来从数据库查询数据,有类似如下的代码: session.Where("id in (?)", strings,Join(arr, ",")) 发现:当arr中的ID个数大于1时,查询不出来任何数据. 于是修改为: session.Where(fmt.Sprintf("id in (%s)", strings,Join(arr, ","))) 问题解决.…
【解决了一个小问题】golang go.mod中多了一个斜杠导致replace无效
replace github.com/sxxx/common_lib/src/ => ../../common_lib/src 修改成 replace github.com/sxxx/common_lib/src => ../../common_lib/src 后,replace才生效了.…
MVVM模式的一个小例子
使用SilverLight.WPF也有很长时间了,但是知道Binding.Command的基本用法,对于原理性的东西,一直没有深究.如果让我自己建一个MVVM模式的项目,感觉还是无从下手,最近写了一个小例子,贴上代码,自己感觉比较经典. 首先是依赖属性的基类,继承自INotifyPropertyChanged Command基类1(图片太大): Command基类2: Command基类3: 前台View: 后台ViewModel: 后台ViewModel: 现在贴出图片,等有时间了自己敲代码,…